您好我想模拟用户点击输入框。 脚本是:
function prepareToScan(){
$("fireRegAdd").focus();
$('fireRegAdd').keypress();
}
和HTML
<h2>Add a visitor to today's fire register</h2>
<input type="button" onmousedown="prepareToScan()" value="Add Visitor">
<input id="fireRegAdd" name="fireRegAdd">
</div>
我有一个条形码扫描器,可以将代码放入输入框,但只有当它被“点击”时。我已经尝试过.focus()但它需要两次扫描才能让扫描工作。焦点与实际点击框中的焦点不同。有谁知道怎么做?
感谢
所以我发现,如果我添加一个警报,它会正确设置:
function prepareToScan(){
alert("ready to scan");
$("fireRegAdd").focus();
$('fireRegAdd').keypress();
}
但我真的不想要一个警告框
我添加了代码演示。单击按钮时,我希望输入框中有一个闪烁的光标。
function prepareToScan(){
$("#fireRegAdd").focus();
$('#fireRegAdd').click();
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<div>
<h2>Add a visitor to today's fire register</h2>
<input type="button" value ="Add Visitor" onmousedown="prepareToScan()"/>
<input id="fireRegAdd" name="fireRegAdd" value="" />
</div>
答案 0 :(得分:0)
我发现几乎不可能将注意力集中在输入框上,以便光标闪烁。我尝试了一切,包括操纵光标位置和使用click事件。
然而,我确实解决了我的问题。条形码扫描仪就像键盘一样。所以我写了一些检测键盘输入的代码。它检查传入的密钥。如果它在250毫秒内收到超过3个,则认为它来自扫描仪。工作一种享受。它易于修改以适应不同的应用。这是我最终得到的javascript代码。为了使它工作,你需要一个ID =&#34;条形码&#34;希望有人觉得它很有用。var chars = [];
var pressed = false;
window.addEvent( 'keydown', function( evt ){
//console.log(evt.key);
chars.push(evt.key);
setTimeout(function(){
if (chars.length >= 3) {
var barcode = chars.join("");
$("barcode").value= barcode;
}
chars = [];
pressed = false;
},250);
});