如何强制 Jquery 使背景更改的文本框的焦点事件具有正确的值?

发布于 2024-10-14 20:28:50 字数 311 浏览 3 评论 0原文

我正在根据用户在另一个文本框(父级)中输入的值更改文本框(子级)。

这是使用以下 Jquery 完成的:

$(this).val(newData).trigger('change');

当使用鼠标或 Tab 键直接将焦点从父文本框更改为子文本框时,子文本框在子文本框的焦点事件中仍然具有旧值。 在模糊事件中,子文本框具有正确的新值。

当我首先将焦点设置到完全不同的控件,然后转到子文本框时,子文本框的焦点事件中的值是正确的。

发生了什么事,如何强制更新子文本框值,以便它始终在焦点事件中注册?

I'm changing a textbox (child) based on a value entered by the user into an other textbox (parent).

This is done using following Jquery:

$(this).val(newData).trigger('change');

When changing directly the focus from the parent to the child textbox using the mouse or tabbing, the child textbox still has the old value in the focus event of the child textbox.
On the blur event, the child textbox has the correct new value.

When I set the focus first to an totally different control, and then go to the child textbox, the value in the focus event of the child textbox is correct.

what is going on, and how can I force an update of the child textbox value, so that it is always registered in the focus event ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

女中豪杰 2024-10-21 20:28:50

也许你的意思是这个? 在这种情况下,我更喜欢使用

master -slave 

术语;)

child = slave

例如:

/** 
  just add/change events like change blur keyup keydown you can play with 
**/

$("input[name='master']").bind("blur", function() {
   $("input[name='slave']").val($(this).val());
});

在这里测试:

http://jsfiddle.net/8SYKZ/

perhaps you mean this? I prefer to use the

master -slave 

terminology in this case ;)

child = slave

like:

/** 
  just add/change events like change blur keyup keydown you can play with 
**/

$("input[name='master']").bind("blur", function() {
   $("input[name='slave']").val($(this).val());
});

test here:

http://jsfiddle.net/8SYKZ/

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文