我正在尝试阻止表单在使用条形码扫描仪时将文本输入到突出显示的字段中。当我按下扫描仪上的按钮时,它会自动尝试使用表单中的更高优先级提交按钮进行提交。我试图在javascript中使用忽略函数,但无法找到扫描仪的密钥代码值。有没有办法设置不同的提交按钮的优先级而不必重新排列它们?这就是我在代码中设置按钮的方式:
<li>
<cfinput type="submit" name="add" value="Enter Package">
<cfinput type="submit" name="search" value="Search">
<cfinput type="submit" name="reset" value="Reset">
</li>
</ul>
</td>
<td>
<center><div id="labelImageDiv">
<img id="labelImage" src="" alt="label preview"/>
</div>
<ul>
<li>
<label for="printersSelect" class="left">Printer:</label>
<select id="printersSelect" class="right"></select>
<button id="printButton">Print</button>
</li>
<li>
<div class="packHead">Package Pickup</div>
<label for="pickup" class="left">Scan Barcode:</label>
<div class="right">
<cfinput type="text" name="pickup">
</div>
</li>
<li>
<div id="pickButton">
<cfinput type="submit" name="pkgPickup" value="PickUp">
</div>
</li>
</ul>
答案 0 :(得分:7)
到目前为止我找到的最佳解决方案
$(":input").keypress(function(event){
if (event.which == '10' || event.which == '13') {
event.preventDefault();
}
});
答案 1 :(得分:4)
我投票支持existsdissolve的答案,因为扫描仪应可配置。
然而,一个非常简单的javascript解决方案是返回false onSubmit,除非实际点击提交按钮允许提交表单。像这样的东西 -
<script language="javascript">var p = false;</script>
<form method="post" onsubmit = "return(p)">
<input type = "text" name = "text" />
<input type = "submit" value = "submit" name = "submit" onClick = "javascript: p=true;" />
</form>
答案 2 :(得分:3)
大多数扫描仪允许您编写在扫描过程中发送的字符。您通常可以在线查找扫描仪的型号手册,下载它,然后扫描正确的编程代码,以便扫描通过您想要的内容发送。
答案 3 :(得分:1)
如果扫描仪正在送入文本框,请在隐藏提交按钮的情况下启动表单。仅在文本框具有数据时显示它。这是通过javascript完成的,而不是ColdFusion。
答案 4 :(得分:1)
只需添加此HTML数字过滤器!
<input type="text" id="bcvalue" name="barcodedata" value = "" onkeypress="return (event.charCode > 47 && event.charCode < 58)">
非常适合我的iPad资产控制应用程序!
答案 5 :(得分:-1)
将输入类型设置为按钮。扫描完成后将其更改为提交。