JQuery后期输入值一个字符

时间:2014-05-15 10:15:30

标签: javascript jquery

我抓住输入字段的值:

    $('#input').on("keydown", function(){
        var city = $(this).val();
        console.log(city);
    });

当我输入' n'控制台没有返回任何内容,我输入' ne' ne它返回' n',键入' new'它返回' ne'

为什么会这样?

7 个答案:

答案 0 :(得分:5)

它没有赶上它,它正在做它应该做的事情,就是在键盘被按下时显示控制台中的字母。 只有在释放按键后,输入框中才会显示一个字母,这就是您在下一次按键时看到它的原因。

您需要的是.keyup()事件:

$('#input').on("keyup", function(){

<强> DEMO

答案 1 :(得分:3)

使用keypress事件代替keydown事件。

答案 2 :(得分:1)

试试这段代码,希望keyup能正常工作

$('#input').on("keyup", function(){
        var city = $(this).val();
        console.log(city);
    });

答案 3 :(得分:1)

当用户第一次按下键盘上的键时,keydown事件被发送到元素。要确定按下了哪个键,请检查传递给处理函数的事件对象。

虽然浏览器使用不同的属性来存储此信息,但jQuery会规范化.which属性,以便您可以可靠地使用它来检索密钥代码。此代码对应于键盘上的键,包括特殊键(如箭头)的代码。

要捕捉实际的文字输入, .keypress() 可能是更好的选择。

答案 4 :(得分:1)

试试这段代码,希望它能为你效用

$("#input").keyup(function() {
   console.log($(this).val());
});

答案 5 :(得分:0)

你必须使用keyup来获得你想要的东西

  $('#input').on("keyup", function(){
        var city = $(this).val();
        console.log(city);
    });

认为这就是你想要的

答案 6 :(得分:0)

正如我的评论所述,当按下键但在将键值添加到字段之前,会发生keydown事件。您可能希望阻止将密钥添加到字段中或实现某些快捷方式,此事件可能会这样做。

有关更完整的说明,请参阅JQuery Keyboard events部分