2014-02-24 44 views
0

我最近發佈了一個問題,要求將信息存儲在變量中。我得到了一個答案,我認爲我解決了我的問題。它確實,但有一個問題。首先,這裏是帖子和我給出的答案:https://stackoverflow.com/a/21980101/2603319 TLDR:我想要一個textarea,在其中添加一個像「hey」這樣的值,然後按提交作爲例子,它存儲在變量中,如小提琴中所示,然後if例如,您再次鍵入「hey」,您會收到一條消息,指出「此文本是相同的」。如果您之後輸入「Hello」之類的新內容,則會顯示消息「此文本不同」,但如果再次輸入「Hello」,則會顯示「此文本相同」的消息。下面的代碼和jsfiddle的工作正常,但我的問題是,第一次你輸入任何東西到textarea並提交,你會得到消息「This text is different」。我能做些什麼來防止這種情況發生,並保持我想要的功能?需要使用數據保留變量對此功能進行簡單調整。

下面是它的代碼和的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

是的,沒有輸入或我的意思是最初我不希望它是真實的previousValue不等於currentValue。 – Brandon

+0

是的,好吧檢查我的答案,因爲它最初設置爲空,我只是做了一個空檢查 – 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 
} 
相關問題