我有關於如何檢查輸入文本更改時間的問題?我用這樣的:更改文本時檢查輸入
$('#query').keydown(function() {
console.log($(this).val());
});
但是當實際值query
,控制檯將被記錄quer
。它總是延遲。我不知道爲什麼?
我有關於如何檢查輸入文本更改時間的問題?我用這樣的:更改文本時檢查輸入
$('#query').keydown(function() {
console.log($(this).val());
});
但是當實際值query
,控制檯將被記錄quer
。它總是延遲。我不知道爲什麼?
有3種方法來實現它。
第一種方法是使用其他事件,如input
或propertychange
。請注意,僅在IE上支持propertychange
,在現代瀏覽器上支持input
。
$('#query').on('input perpertychange', function() {
console.log($(this).val());
});
第二種方式是把console.log($(this).val());
在setTimeout
聲明。你可以得到你正在輸入的內容。 (原因?我很抱歉,我真的不知道爲什麼,只是使用它);
$('#query').keydown(function() {
var query = $(this);
setTimeout(function() {
console.log(query.val());
}, 0);
});
,最後一個是用textchange
事件(http://zurb.com/playground/jquery-text-change-custom-event)。就像這樣:
$('#query').on('textchange', function() {
console.log($(this).val());
});
此處不要使用,而是使用keyup
,以便在您收到事件時輸入值已更改。
請參閱processing of key events上的MDN。
可以使用keyup event
$('#query').keyup(function() {
console.log($(this).val());
});
但是當我按下按鈕但不按下按鈕時,就沒有日誌。 – Eddy
它與我合作(第二種解決方案)。謝謝! – Eddy