如何锁定文本输入框的焦点,使其始终处于活动状态?

3

我正在制作一个结账屏幕,它将安装在与条码扫描器相连的触摸屏上,用户端不会有其他鼠标或键盘。扫描器将扫描到需要始终突出显示和处于活动状态的文本输入框中,即使有人意外点击了它的外部,也不需要再次点击文本输入框来重新聚焦。

我有一个输入文本框,在加载时使用下面的jquery聚焦并处于活动状态,但是否有解决方案可以使其始终处于聚焦状态,即使您在输入字段之外单击或触摸?这是我目前为止唯一的聚焦载入代码:

$('input[name="patronid"]').focus();

因此,尽管页面还有其他元素,例如页脚和滚动广告空间,但我想专注的唯一元素是带有文本框和提交条形码按钮的输入字段,以便他们扫描。希望有人可以帮忙!


将一个focus事件处理程序绑定到document,检查事件目标是否具有该名称。如果没有,则调用那行代码。 - Heretic Monkey
你可以设置 $(document).on('focus', function(event)) 来重新聚焦到输入框,但是除了禁用聚焦变化之外,肯定还有其他更好的方法来实现这一点 - 你是如何将文本放入文本框中的?为什么不使用 $('input[name="patronid"]').val(<barcode value>) 来设置文本值呢? - Jeff
一个扫描仪应用程序可能不应该被编写成一个网页应用程序... - Heretic Monkey
@Jeff,条形码将直接从连接到触摸屏的扫描仪放入文本框中。我会将文本值设置为条形码,谢谢。 - KellieJanae
2个回答

3

当组件失去焦点时,会触发一个blur事件。每当您收到此输入的模糊事件时,请再次获取焦点。


0

$('input[name="patronid"]').focus();

$('input[name="patronid"]').blur(function(){
  $('input[name="patronid"]').focus();
});

$('button').click(function(){
  console.log('click detected - returning now to input field');
  console.log('More can be done in here, if required');
  //Turn off the .blur if needed
  $('input[name="patronid"]').off('blur');
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>

<input name="patronid" />
<button>Ok 2 Click</button>


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接