jQuery:keydown复制一个字符后的文本
的目标是在用户每次键入字符时在jQuery:keydown复制一个字符后的文本,jquery,Jquery,的目标是在用户每次键入字符时在中显示在中输入的文本。除了总是落后一个字符外,它还能工作。这个代码怎么了 jQuery代码: var $input = $('<input />'); $('body').append($input); var $p = $('<p/>'); $('body').append($p); $input.keydown(function() { $p.text ($input.val()); }); var$input=$(''); $
中显示在
中输入的文本。除了
总是落后一个字符外,它还能工作。这个代码怎么了
jQuery代码:
var $input = $('<input />');
$('body').append($input);
var $p = $('<p/>');
$('body').append($p);
$input.keydown(function() {
$p.text ($input.val());
});
var$input=$('');
$('body')。追加($input);
var$p=$(“”);
$('body')。追加($p);
$input.keydown(函数(){
$p.text($input.val());
});
keydown
在按键时触发,然后在使用按键更新值之前触发。您可能希望改用keyup()
:
$input.keyup(function() {
$p.text ($input.val());
});
或简化为:
$input.keyup(function() {
$p.text (this.value);
});
您还可以手动附加最后一个字符(只要最后一次按键不是退格或删除,此操作有效:
$input.keydown(e){
$p.val( this.value + String.fromCharCode(e.which));
});
但是,坦率地说,当您必须考虑特殊字符(使用shift、ctrl、alt或backspace和delete)时,这就开始变得愚蠢了