如何从jQuery中的输入字段中删除焦点?


136

使用以下行加载页面时,我将焦点放在某个输入字段上:

$('#myInputID').focus();

将鼠标悬停在某个元素上时,有什么方法可以撤消或删除此焦点?(离开此元素后,不必重置焦点。)

我在jQuery中找不到与上述功能相反的功能,否则将无法在此处使用。

Answers:


227

使用.blur()

当模糊事件失去焦点时,会将其发送到元素。最初,此事件仅适用于表单元素,例如<input>。在最近的浏览器中,事件的域已扩展为包括所有元素类型。元素可以通过键盘命令(例如Tab键)或单击页面其他位置的鼠标来失去焦点。

$("#myInputID").blur(); 

好的,所以我认为我在这里做错了,或者我以错误的方式描述了这个问题。我要在此处使用的元素具有类navbar(它是Bootstrap 3 navbar),因此我尝试了以下操作,但此方法不起作用:$('。navbar')。on('mouseover',function(){$( '#myInputID')。blur();});
user2571510

是的,我做到了。如果这不起作用,我可以将焦点放在导航栏上吗?
user2571510

1
@ user2571510:尝试在事件内部提供警报,看看它是否被触发。
Milind Anantwar

是的,警报会显示,但不会从字段中移出焦点。
user2571510

1
@ user2571510:页面中是否有重复的ID?尝试使用$("[id=myInputID]").blur();
Milind Anantwar



0

$(':text').attr("disabled", "disabled");将所有文本框设置为禁用模式。您可以采用其他方式,例如给每个文本框ID。通过执行此代码,权重将会更大,并且性能问题将会出现。

所以最好有$(':text').attr("disabled", "disabled");办法。


0

如果具有readonly属性,则模糊本身将不起作用。下面的问题应该可以解决。

$('#myInputID')。removeAttr('readonly')。trigger('blur')。attr('readonly','readonly');
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.