我正在尝试让此脚本在填充原始字段时自动填充另一个字段。但是第二个字段会丢失其值的最后一个字符。有什么想法吗?
Here is the code...
<input type="text" class="first" placeholder="type here">
<input type="text" class="second" placeholder="here it is the reuslt">
$(".first").on('keydown',function(){
$(".second").val($(this).val());
});
答案 0 :(得分:2)
keydown
事件在value
更新之前触发,因此当您阅读它时,您会在被按下的键更改之前获得value
。
使用input
事件(粘贴后也会触发)。
$(".first").on('input', function() {
$(".second").val($(this).val());
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" class="first" placeholder="type here">
<input type="text" class="second" placeholder="here it is the reuslt">
&#13;
答案 1 :(得分:0)
当用户按某个键
时会发生 onkeydown 事件当用户释放密钥
时,会发生 onkeyup 事件所有浏览器中的所有键(例如ALT,CTRL,SHIFT,ESC)都不会触发 onkeypress 事件。要仅检测用户是否按下了某个键,请使用onkeydown事件,因为它适用于所有键。
在您的情况下 onkeydown 它首先执行函数。所以输入中的执行值不会被按下的键值更新,因此它会在插入值之前触发
结帐example
$(".first").on('keyup',function(){
$(".second").val($(this).val());
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" class="first" placeholder="type here">
<input type="text" class="second" placeholder="here it is the reuslt">