jQuery keydown / keypress无法正常工作

时间:2012-11-11 18:24:33

标签: javascript jquery

所以我有一个输入:

<input type="text" name="in" />

我需要在输入时获取输入的当前value,我面临的问题是,如果我输入pass并且我执行console.log将会得到的是pas错过了最后一个角色;但我需要整个字符串pass

你可以在这里看到现场演示:http://jsfiddle.net/HjVHV/1/有什么问题?

5 个答案:

答案 0 :(得分:4)

您应该使用keyup事件:

$('input[name=in]').keyup(function()
{
  // $(this).val()
});

在里面,您可以获得刚刚输入的价值

答案 1 :(得分:4)

你应该使用keyup

$('input').keyup(function(){...

答案 2 :(得分:1)

如果需要,您可以继续使用.keydown(),只需添加使用.fromCharCode()按下的字符,如下所示:

$('input').keydown(function(e){
    $('.output').html($('input').val() + String.fromCharCode(e.which).toLowerCase());
});

见工作demo

答案 3 :(得分:1)

您应该使用按键事件。

以下是基于你的js小提琴的示例代码

$('input').keyup(function(){
    $('.output').html($('input').val());
});​

答案 4 :(得分:0)

这是你在找什么?

http://jsfiddle.net/qr59c/1/

我从http://forum.jquery.com/topic/can-change-handle-immediate-text-changes#14737000000967875

复制并修改了以下代码块
$('#input').each(function() {
 // Save current value of element
 $(this).data('oldVal', $(this));

 // Look for changes in the value
 $(this).bind("propertychange keyup input paste", function(event){
    // If value has changed...
    if ($(this).data('oldVal') != $(this).val()) {
     // Updated stored value
     $(this).data('oldVal', $(this).val());

     // Do action
     $('.output').html($('#input').val());
    }
 });
});