繁体   English   中英

不集中时在文本字段上设置焦点

[英]Set focus on textfield when un-focused

我希望文本字段始终处于焦点状态。 当他们从文本字段中单击时,我希望焦点重新回到文本字段中。

我将如何使用jquery做到这一点?

$('input').focus();

$('input').**unfocused?**( function($) { $('input').focus();} );

您正在寻找blur事件

$(':text').blur(function() { this.focus(); });

以下代码是一种替代解决方案,它依赖于定期检查控件的状态。

var controlFocus=false;
$("#txtName").focus(function(){
    $(this).addClass("focused"); 
    if(!controlFocus) {
        controlFocus = true;
        setInterval(function(){ 
            var o = $("#txtName");
            if(!o.hasClass("focused")) o.focus();
        }), 200);
    }
}).blur(function(){$(this).removeClass("focused");});

在文本框(名为txtName)获得第一个焦点后,每0.2秒,代码控制文本框是否具有焦点。 如果没有,那就集中精力。 但这可能是一件非常烦人的事情。

绑定以获取更改事件,然后检查是否必须将焦点强加于此输入,请在文档中插入一些数据。 $(document).data('_ force_focus',e.target)

$('input.force').bind('change', function(e) {
        if( need_force_focus() ) {
                $(document).data('_force_focus', e.target);
        } else {
                $(document).removeData('_force_focus');
        }
   });

现在,在文档上绑定到focusin事件,测试文档是否具有“ _force_focus”数据。 如果是这样,请将焦点设置为该值。 通过针对e.target进行测试来防止focusin再次触发很重要

$(document).bind('focusin', function (e) {
     var t = $.data(document, '_force_focus');
             if( t && e.target !== t ) {
                     $(t).trigger('focus');
                     return false;
             }
             return true;
     });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM