我有以下功能:

$(document).ready(function() {
    $("#dSuggest").keypress(function() {
        var dInput = $('input:text[name=dSuggest]').val();
        console.log(dInput);
        $(".dDimension:contains('" + dInput + "')").css("display","block");
    });
});

出于某种原因,对于第一次按键,我在控制台日志中得到了一个空字符串。

最佳答案

这是因为在将新字符添加到元素的keypress之前会触发value事件(因此,在添加第一个字符之前会触发第一个keypress事件,而value仍然为空)。您应该改用keyup,在添加字符后将其触发。

请注意,如果您的元素#dSuggestinput:text[name=dSuggest]相同,则可以大大简化此代码(如果不是,则使一个元素的名称与另一个元素的id相同不是一个好主意)。

$('#dSuggest').keypress(function() {
    var dInput = this.value;
    console.log(dInput);
    $(".dDimension:contains('" + dInput + "')").css("display","block");
});

关于jquery - jQuery在按键后获取输入值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8795283/

10-09 07:48