保持文本字段的焦点

时间:2013-04-05 19:38:57

标签: javascript jquery ajax forms

我认为如果不寻求帮助就很容易做到,但我猜不是。添加autofocus =“true”标记在页面最初加载时起作用,但如果任何人点击任何地方或打开链接,文本字段将失去焦点。如何强制该字段保持焦点?

5 个答案:

答案 0 :(得分:2)

有人问你为什么要那样做。 答案当然是作为开发者,我们需要满足客户的疯狂要求:)

答案:

$(document).ready(function(){

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

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

答案 1 :(得分:1)

在单击时在输入框上聚焦的文档上附加一个单击事件侦听器。

$(document).on("click", function()
{
     $("yourInputIdHERE").focus();
}

答案 2 :(得分:1)

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

答案 3 :(得分:1)

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

$("#element").blur(function ()
{
    $("#element").focus();
});
$(document).bind('keydown mousedown mouseup click',function ()
{
    $("#element").focus();
});

答案 4 :(得分: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");
   }
}); 

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

<强> Here is a small demo 下,
你会注意到,一旦文本字段具有焦点,它将保持它直到输入一个值。