focusout()和trigger。('focusout')不会导致输入失去焦点

时间:2012-02-15 19:45:13

标签: javascript jquery focus

我正在使用jQuery UI模式对话框,并使用一些表单字段填充它。由于这个错误:http://bugs.jqueryui.com/ticket/4731,第一个输入在对话框打开时获得焦点。为了解决这个问题,我打算在打开对话框时模糊受影响的输入。

问题是在.blur()上存在为此输入调用的其他功能,而我想为此启动该功能。

所以,我正在尝试使用.focusout().trigger('focusout')来达到相同的效果,但没有结果。

执行以下任一操作:

$('#input-id').focusout();
$('#input-id').trigger('focusout');

实际上并不会导致输入失去焦点,使用.blur()成功。我错过了什么,还是有另一种方法来完成我需要的东西?

5 个答案:

答案 0 :(得分:20)

如果你喜欢快速的javascript hack,你可以使用:

$(':focus').blur();

答案 1 :(得分:4)

我的建议是在打开对话框时将焦点设置到对话框中的其他元素,而不是将文本框设置为模糊。这应该可以解决你的问题。

希望这有助于!!

答案 2 :(得分:4)

Focusout不会导致元素失去焦点。相反,当元素失去焦点时会触发焦点。查看http://api.jquery.com/focusout/

答案 3 :(得分:3)

我用它作为解决方法:

$('body').focus();

答案 4 :(得分:0)

我使用它而不需要在selenium驱动程序中执行javascript:

field.send_keys :tab