我有关于如何检查输入文本更改时间的问题?我用这样的:更改文本时检查输入
$('#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