1

所以我有一个输入:

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

而且我需要在键入时获取value输入的当前值,我面临的问题是,如果我键入pass并执行 console.log,我将得到的内容将pas丢失最后一个字符;但我需要整个字符串pass

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

4

5 回答 5

4

您应该使用该keyup事件:

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

在里面你得到你刚刚输入的值

于 2012-11-11T18:25:50.303 回答
4

你应该使用 keyup

$('input').keyup(function(){...
于 2012-11-11T18:26:01.800 回答
1

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

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

查看工作演示

于 2012-11-11T18:30:50.583 回答
1

您应该使用 key up 事件。

这是基于您的 js fiddle 的示例代码

$('input').keyup(function(){
    $('.output').html($('input').val());
});​
于 2012-11-11T18:32:42.483 回答
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());
    }
 });
});
于 2012-11-11T20:09:34.250 回答