值更改setinterval时发出警报

时间:2013-12-12 15:03:21

标签: javascript jquery alert setinterval getjson

当getjson发生更新时,文本框文本发生了变化! 没有任何反对意见......有人可以帮我解决这个问题吗? 文本框:

<input id="your_textbox" />

  setInterval(function () {
      $.getJSOg('/api/my_apiurl', function (Payload) {
          $(Payload).each(function (i, item) {
              $("#your_textbox").val(item.CR_DateTime);
          });
      });
  }, 3000);

和脚本“haai:

setInterval(function () {
  jQuery('#your_textbox').on('input', function () {
      alert('haai');
  });
 }, 3000);

更改为(不工作):

   setInterval(function () {
 var check;
$(function(checkForMessages) {    
          $.getJSON('/api/myapiurl', function (data) {
if(data == 1) {
            //There are new messages
            clearInterval(check);
            alert("You have mail!");
        }
    }
);

check = setInterval(checkForMessages, 3000);

   });
}, 3000);

1 个答案:

答案 0 :(得分:4)

您一遍又一遍地在文本框中添加偶数!那真是太糟糕了。

应该只是

jQuery('#your_textbox').on('input', function () {
    alert('haai');
});

现在,当您使用代码更改文本框时,JavaScript不会触发事件,因此您需要进行触发。

var previousValue = $("#your_textbox").val(),
    newValue = item.CR_DateTime;
if (previousValue !== newValue ) {
    $("#your_textbox").val(newValue).trigger("input");
}