如何使用HTML5/Javascript强制光标始终位于一个表单字段中?

如何使用HTML5/Javascript强制光标始终位于一个表单字段中?,javascript,jquery,html,forms,Javascript,Jquery,Html,Forms,我一直努力把注意力集中在一个表单字段上。它基本上需要在页面上始终处于活动状态,因此,如果键入任何内容,它将始终位于该字段中。我如何做到这一点?我使用了HTML5中的autofocus命令,但一旦切换,它就不会在没有页面刷新的情况下返回。基本上我想强制光标始终停留在表单字段中 <input type="text" placeholder="Type Here" id="forced" required autofocus> 这一切都必须在客户端进行控制,以便只能使用HTML5和

我一直努力把注意力集中在一个表单字段上。它基本上需要在页面上始终处于活动状态,因此,如果键入任何内容,它将始终位于该字段中。我如何做到这一点?我使用了HTML5中的autofocus命令,但一旦切换,它就不会在没有页面刷新的情况下返回。基本上我想强制光标始终停留在表单字段中

<input type="text" placeholder="Type Here" id="forced" required autofocus> 


这一切都必须在客户端进行控制,以便只能使用HTML5和Javascript。有解决方法吗?

这将完成您试图做的事情。我正在收听
模糊事件,并在事件发生时重新聚焦输入。如果您不想让jQuery的开销如此简单,那么这里有一个简单的javascript

var alwaysFocusedInput=document.getElementById(“焦点\目标”);
alwaysFocusedInput.addEventListener(“模糊”,函数(){
设置超时(()=>{
alwaysFocusedInput.focus();
}, 0);
});

这将完成您尝试执行的操作。我正在收听
模糊事件,并在事件发生时重新聚焦输入。如果您不想让jQuery的开销如此简单,那么这里有一个简单的javascript

var alwaysFocusedInput=document.getElementById(“焦点\目标”);
alwaysFocusedInput.addEventListener(“模糊”,函数(){
设置超时(()=>{
alwaysFocusedInput.focus();
}, 0);
});

你可以试试这个

$("#forced").blur(function(){
      $(this).focus();       
});
你可以试试这个

$("#forced").blur(function(){
      $(this).focus();       
});

当任何非元素被聚焦时,聚焦元素

$(":not('#forced')").focus(function(){
  $("#forced").focus();       
});

当任何非元素被聚焦时,聚焦元素

$(":not('#forced')").focus(function(){
  $("#forced").focus();       
});


请澄清,jQuery是否在允许的参数范围内?请澄清,jQuery是否在允许的参数范围内?这不起作用,但是,如果我在页面上单击任何其他内容,光标不会返回到表单输入,除非我单击那里。我只是做了一个小动作。它在那里工作。过来看。这在Chrome上有效,但在Firefox上无效,对吗?没错,它在FF中无效。我以前没有检查过。我已经尝试了一些我在那里看到的解决方案,但我无法让它工作。但是,这不起作用,如果我在页面上单击任何其他内容,光标不会返回表单输入,除非我单击那里。我只是做了一个小提琴。它在那里工作。过来看。这在Chrome上有效,但在Firefox上无效,对吗?没错,它在FF中无效。我以前没有检查过。我尝试过几种解决方案,但都没有成功。如果我在页面上单击任何其他内容,光标不会返回表单输入,除非我单击了。请单击示例的iframe中的任意位置。该代码将在您的页面上运行。如果您尝试单击其他输入或代码段边框内的任何位置,都会成功。那个片段就像文档中的一个文档。也许我误解了。我将JS放在脚本标记中逐字复制这段代码,并测试页面,但它不起作用。我遗漏了什么吗?您是否包含了具有相应id的输入代码?或者更改id?该脚本仅适用于不支持自动对焦的浏览器。FF(至少是它的新版本)确实支持它。我将不使用它,而是将
alwaysFocusedInput.focus()
添加到第一个脚本的末尾。(只需将其钉在末端。)如果我单击页面上的任何其他内容,光标不会返回到表单输入,除非我单击该位置。单击示例iframe中的任何位置。该代码将在您的页面上运行。如果您尝试单击其他输入或代码段边框内的任何位置,都会成功。那个片段就像文档中的一个文档。也许我误解了。我将JS放在脚本标记中逐字复制这段代码,并测试页面,但它不起作用。我遗漏了什么吗?您是否包含了具有相应id的输入代码?或者更改id?该脚本仅适用于不支持自动对焦的浏览器。FF(至少是它的新版本)确实支持它。我将不使用它,而是将
alwaysFocusedInput.focus()
添加到第一个脚本的末尾。(把它钉在最后)这个答案解决不了问题。事实上,它解决不了任何问题。这个答案解决不了问题。事实上,这并不能解决任何问题。