需要使用数据保留变量对此函数进行简单调整。

时间:2014-02-24 08:52:38

标签: javascript

我最近发布了一个问题,请求帮助将信息存储在变量中。我得到了答案,我认为我解决了我的问题。确实如此,但有一个问题。首先,这是我给出的帖子和答案:https://stackoverflow.com/a/21980101/2603319 TLDR:我想要一个textarea你可以在其中添加一个像“hey”这样的值并按下提交,例如,它存储在变量中所见的变量中,然后如果你再次输入“hey”,你会收到显示“此文字相同”的消息。如果您输入类似“Hello”之类的新内容,则会收到消息“此文本不同”,但如果再次键入“Hello”,则会收到消息“此文本相同”。下面和jsfiddle中的代码工作正常,但我的问题是,第一次在textarea中输入任何内容并提交时,会收到消息“此文本不同”。我该怎么做才能防止这种情况发生,同时保留我想要的功能?

这是代码和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/

1 个答案:

答案 0 :(得分: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
}