2013-12-12 5 views
-1

Когда есть обновление от getjson, текст текстового поля изменился! No allert is comminh up .. кто-то может помочь мне с этим allert ?? Текстовое поле:предупреждение при изменении значения setinterval

<input id="your_textbox" /> 

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

и сценарий к Allert «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); 
+0

Да, то apicall работает и значение your_textbox изменилось (дата) – user2385302

+0

Проблемы заключается в том: я сьютах решения «есть новое сообщение» надеюсь, что это Виль помочь моему вопросу .. – user2385302

ответ

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"); 
} 
+0

Он Allert каждого 3 секунды. Я желаю, чтобы все алерт изменилось. – user2385302

+0

Ну, вы можете добавить чек, чтобы увидеть, изменилось ли значение перед запуском. Отредактировал код в вопросе, чтобы показать, что вы хотите сделать. – epascarello

+0

Да! Это работает для меня СПАСИБО – user2385302

Смежные вопросы