0

我认为这很容易在不寻求帮助的情况下完成,但我想不是。添加 autofocus="true" 标记在页面最初加载时起作用,但如果有人单击任何位置或打开链接,文本字段就会失去焦点。如何强制字段保持焦点?

4

5 回答 5

2

有人问你为什么要这样做。答案当然是作为开发人员,我们需要处理客户的疯狂需求:)

对于答案:

$(document).ready(function(){

    $(document).click(function() { $("<THE-ELEMENT>").focus() });
});

在这种情况下,我们将侦听器添加到文档中的所有元素:)

于 2014-04-20T11:38:12.290 回答
1

在单击时关注输入框的文档上附加单击事件侦听器。

$(document).on("click", function()
{
     $("yourInputIdHERE").focus();
}
于 2013-04-05T19:41:36.247 回答
1
$("#textbox").focus().on('blur', function() {
    $(this).focus();            
});
于 2013-04-05T19:41:50.963 回答
1

处理所有情况,以防某些事件被阻止传播到文档。还要处理用户切换选项卡并返回的情况。

$("#element").blur(function ()
{
    $("#element").focus();
});
$(document).bind('keydown mousedown mouseup click',function ()
{
    $("#element").focus();
});
于 2013-04-05T19:48:01.040 回答
0

您可能想要尝试做的是将事件处理程序附加到blur事件。一旦你捕捉到它,你可以简单地在最初失去焦点的同一个元素上触发一个焦点事件。

$("input").on('blur',function(){
   $(this).focus();
}); 

您可能希望将此与某种形式的验证结合起来,以便用户输入所需的值后,他们将能够离开文本字段。

$("input").on('blur',function(){
   var $this = $(this);
   if ($this.val() == ''){
     $this.focus();
     showErrorMessage("Please enter a value");
   }
}); 

如果您不实施某种形式的标志来启用/禁用此行为,您将永远将用户锁定在一个字段中。他们没有(简单的)方法可以移动到页面的不同区域。

这是一个小演示
您会注意到一旦文本字段获得焦点,它将一直保持到输入值为止。

于 2013-04-05T19:43:44.553 回答