我有以下功能:
$(document).ready(function() {
$("#dSuggest").keypress(function() {
var dInput = $('input:text[name=dSuggest]').val();
console.log(dInput);
$(".dDimension:contains('" + dInput + "')").css("display","block");
});
});
由于某些原因,对于第一次按键,我在控制台日志中得到一个空字符串。
发布于 2013-10-16 21:45:37
意识到这是一个相当古老的帖子,我将不管怎样提供一个答案,因为我正在努力解决同样的问题。
您应该改用"input"
事件,并使用.on
方法进行注册。这是快速的-没有keyup
的延迟,并解决了您所描述的缺少最新按键的问题。
$('#dSuggest').on("input", function() {
var dInput = this.value;
console.log(dInput);
$(".dDimension:contains('" + dInput + "')").css("display","block");
});
发布于 2013-08-04 08:15:37
您必须中断执行线程以允许输入更新。
$(document).ready(function(event) {
$("#dSuggest").keypress(function() {
//Interrupt the execution thread to allow input to update
setTimeout(function() {
var dInput = $('input:text[name=dSuggest]').val();
console.log(dInput);
$(".dDimension:contains('" + dInput + "')").css("display","block");
}, 0);
});
});
发布于 2016-12-27 21:35:33
我正在寻找一个ES6示例(这样它就可以通过我的linter),所以对于其他正在寻找相同示例的人来说:
$('#dSuggest').keyup((e) => {
console.log(e.currentTarget.value);
});
我也会使用keyup,因为你会得到填充的当前值。
https://stackoverflow.com/questions/8795283
复制相似问题