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

Posted

技术标签:

【中文标题】如何从jQuery中的输入字段中删除焦点?【英文标题】:How to remove focus from input field in jQuery? 【发布时间】:2014-11-18 14:04:02 【问题描述】:

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

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

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

我在 jQuery 中找不到与上述相反的函数,否则会在这里工作。

【问题讨论】:

【参考方案1】:

使用.blur()

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

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

【讨论】:

好的,所以我认为我在这里做错了,或者我用错误的方式描述了这个。我想在这里使用的元素有类导航栏(它是一个 Bootstrap 3 导航栏)所以我尝试了以下但这不起作用: $('.navbar').on('mouseover', function() $( '#myInputID').blur(); ); 是的,我做到了。如果这不起作用,我可以将焦点设置在导航栏上吗? @user2571510:尝试在事件中发出警报,看看它是否被触发。 是的,警报会显示,但不会从字段中移除焦点。 @user2571510:你的页面中是否有重复的 ID?尝试使用$("[id=myInputID]").blur(); 【参考方案2】:

检查blur():

$('#textarea').blur()

来源:http://api.jquery.com/blur/

【讨论】:

【参考方案3】:

对于所有文本框:

$(':text').blur()

【讨论】:

【参考方案4】:

$(':text').attr("disabled", "disabled"); 将所有文本框设置为禁用模式。 你可以用另一种方式来做,比如给每个文本框 id。通过这样做,代码权重会更大,并且会出现性能问题。

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

【讨论】:

【参考方案5】:

如果你有readonly 属性,模糊本身是行不通的。下面的装置应该可以完成这项工作。

$('#myInputID').removeAttr('readonly').trigger('blur').attr('readonly','readonly');

【讨论】:

以上是关于如何从jQuery中的输入字段中删除焦点?的主要内容,如果未能解决你的问题,请参考以下文章

jQuery验证插件清除IE中的文件输入值

当用户在输入字段中输入数据时,如何从车把页面获取 jquery 中的输入文本值?

如何使用 jQuery 将焦点移至下一个输入?

如果文本框处于焦点,则禁用 jQuery 事件

如何使用JQuery设置焦点在输入字段上

如何快速从 UICollectionView 中的 UIView 中删除焦点阴影?