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

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

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

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

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

【问题讨论】:

    标签: jquery html focus


    【解决方案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');

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2018-09-23
            • 2013-07-18
            相关资源
            最近更新 更多