1

我正在处理两个文本框 - 使用 jQuery 我希望每次用户更新第一个框中的值时,相同的值将出现在第二个框中。

​<input type="text" class="pack"/ >
​<input type="text" class="pack2"/>​​​​​​​​​​​​​​​​​​​​​​​​

​$(".pack").keypress(function(){
    $(".pack2").val($(this).val());
});​​​​​

问题是,如果我在 "pack" 中输入一个字母,它不会立即出现在 "pack2" 中——我必须输入另一个字母,然后第一个字母会出现在 pack2 中

你可以检查小提琴 - http://jsfiddle.net/itamarperetz/jGXyA/

我有什么办法让 pack2 马上更新?

任何建议都会有所帮助,在此先感谢

4

4 回答 4

2

尝试将keypress事件更改为keyup.

​$(".pack").keyup(function() {
    $(".pack2").val($(this).val());
});​​​​​

jsFiddle 演示

于 2012-08-09T11:09:22.273 回答
1

这是因为keypress在字符实际添加到输入字段之前触发。尝试使用keyup,它在字符添加到输入字段后触发。

于 2012-08-09T11:09:34.240 回答
1

看看这个工作答案

您应该使用keyup而不是keypress.

在这里查看 API 。

于 2012-08-09T11:10:20.550 回答
1

使用 keyup 事件

$(".pack").keyup(function(){
    $(".pack2").val($(".pack").val());
});​
于 2012-08-09T11:10:30.713 回答