在jQuery中檢測輸入更改?

input上使用jquery .change ,僅當輸入失去焦點時纔會觸發事件 jquery

就我而言,我須要在輸入值更改後當即調用該服務(檢查值是否有效)。 我該怎麼作? api


#1樓

這涵蓋了使用jQuery 1.7及更高版本對輸入的全部更改: 瀏覽器

$(".inputElement").on("input", null, null, callbackFunction);

#2樓

使用HTML5而不使用jQuery,您能夠使用input事件ide

var input = document.querySelector('input');

input.addEventListener('input', function()
{
    console.log('input changed to: ', input.value);
});

每次輸入文本更改時都會觸發。 this

在IE9 +和其餘瀏覽器中受支持。 spa

此處jsFiddle中進行嘗試。 插件


#3樓

正如其餘人已經建議的那樣,您的解決方案是嗅探多個事件
執行此工做的插件一般會偵聽如下事件: code

$input.on('change keydown keypress keyup mousedown click mouseup', handler);

若是您認爲合適,也能夠添加focusblur和其餘事件。
我建議不要超出偵聽事件的範圍,由於它會將更多的過程加載到瀏覽器內存中,以根據用戶的行爲執行。 事件

注意:請注意,使用JavaScript更改輸入元素的值(例如,經過jQuery .val()方法)不會觸發上述任何事件。
(參考: https//api.jquery.com/change/ )。 ip


#4樓

您能夠將jQuery事件(例如keyupkeypress)與輸入HTML元素一塊兒使用。 您還能夠使用blur()事件。


#5樓

// .blur在元素失去焦點時觸發

$('#target').blur(function() {
  alert($(this).val());
});

//要手動觸發,請使用:

$('#target').blur();
相關文章
相關標籤/搜索