2014-02-24 1 views
0

나는 정보에 변수를 저장하는 데 도움을 요청하는 질문을 최근 게시했습니다. 나는 내 문제를 해결할 수 있다고 생각하는 대답을 받았다. 그랬지만 한 가지 문제가 있습니다. 첫째, 주어진 게시물과 답변은 다음과 같습니다. https://stackoverflow.com/a/21980101/2603319 TLDR : "hey"와 같은 값을 추가하고 제출을 누르면 텍스트 영역을 만들고 싶습니다. 예를 들어 바이올린에 표시된 변수에 저장되어있는 경우 if 예를 들어 "hey"를 다시 입력하면 "This text is same"이라는 메시지가 나타납니다. "Hello"와 같은 새로운 내용을 입력하면 "This text is different"라는 메시지가 나타납니다. "Hello"를 다시 입력하면 "This text is same"이라는 메시지가 나타납니다. 아래의 코드와 jsfiddle에서 잘 작동하지만 내 문제는 텍스트 영역에 아무 것도 입력하지 않고 제출하면 처음에는 "이 텍스트가 다릅니다"라는 메시지가 나타납니다. 그런 일이 일어나지 않도록 내가 원하는 기능을 유지하려면 어떻게해야합니까?데이터 보존 변수를 사용하여이 기능에 대한 간단한 조정이 필요합니다.

는 여기에 대한 코드 및 jsfiddle이다 : 나는 사용자가 값의 초기 삽입에서 출력을 방지하기 위해이 같은 함수를 것

<textarea id="mytext"></textarea> 
<button onclick="MyFunction();" type="button" value="submit"/>Submit</button> 
var previousValue = null; 
var currentValue = null; 
function MyFunction(){ 

var currentValue = document.getElementById("mytext").value; 

if(previousValue === currentValue){ 
    alert('the text is the same'); 
} 
else 
{ 
    alert('the text is different'); 
} 
previousValue = currentValue; 
} 

http://jsfiddle.net/2eFD2/9/

+0

텍스트를 처음 삽입 할 때 무엇을 말하고 싶습니까? 아니면 그 시점에서 출력을 원하지 않습니까? – pythonian29033

+1

예, 입력이 없거나 처음에는 이전 값이 currentValue와 같지 않기를 원합니다. – Brandon

+0

넵, 처음에는 null로 설정 되었기 때문에 내 대답을 확인합니다. 그냥 null 체크를했습니다. – pythonian29033

답변

1

;

function MyFunction(){ 

    var currentValue = document.getElementById("mytext").value; 

    if(previousValue === null){ 
     //alert('first data entry'); //<-- you can put any code you want to happen when the user initially enters a value 
    }else{ 
     if(previousValue === currentValue){ 
      alert('the text is the same'); 
     }else{ 
      alert('the text is different'); 
     } 
    } 
    previousValue = currentValue; 

    //I thought maybe you'd want to clear the textfield after the user submits as well; 
    document.getElementById("mytext").value = ""; //just a suggestion 
} 
관련 문제