所以我有一个输入:
<input type="text" name="in" />
而且我需要在键入时获取value
输入的当前值,我面临的问题是,如果我键入pass
并执行 console.log,我将得到的内容将pas
丢失最后一个字符;但我需要整个字符串pass
你可以在这里看到一个现场演示:http: //jsfiddle.net/HjVHV/1/有什么问题?
所以我有一个输入:
<input type="text" name="in" />
而且我需要在键入时获取value
输入的当前值,我面临的问题是,如果我键入pass
并执行 console.log,我将得到的内容将pas
丢失最后一个字符;但我需要整个字符串pass
你可以在这里看到一个现场演示:http: //jsfiddle.net/HjVHV/1/有什么问题?
您应该使用该keyup
事件:
$('input[name=in]').keyup(function()
{
// $(this).val()
});
在里面你得到你刚刚输入的值
你应该使用 keyup
:
$('input').keyup(function(){...
如果需要,您可以继续使用.keydown()
,只需使用 追加按下的字符.fromCharCode()
,如下所示:
$('input').keydown(function(e){
$('.output').html($('input').val() + String.fromCharCode(e.which).toLowerCase());
});
查看工作演示
您应该使用 key up 事件。
这是基于您的 js fiddle 的示例代码
$('input').keyup(function(){
$('.output').html($('input').val());
});
这是你想要的?
我从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());
}
});
});