我有一个简单的表单,每行末尾有一个按钮,可以在onclick事件上打开一个弹出窗口。
我遇到的问题是我用条形码扫描仪填写表单文本字段,它总是触发按钮中的表单和onclick事件。
我已经设法阻止表单提交一些小脚本但现在问题是条形码扫描器触发按钮内的onclick事件,所以每次我使用扫描仪时弹出窗口都会打开..
这是我到目前为止的代码:
Jquery:
<script type="text/javascript">
function stopform(){ //检索代码
var code =document.getElementById ('code').value;
// Return false to prevent the form to submit
return false;
}
HTML表格:
<tr>
<td>
<div class="form-group">
<input type="text" id="code" name="code" class="form-control" onchange="oncode_change(this.value)" />
</div>
</td>
<td>
<div class="form-group">
<input type="text" name="qte" id="qte" class="form-control" value="1" onkeyup="onqte_change(this.value)" />
</div>
</td>
<td colspan="4"><div id="txtHint3" style="width: 100%"> </div></td>
<td><button onclick="Popup=window.open('rabais.php?type=article&option=argent&pos=1','Popup','toolbar=no,location=no,status=no,menubar=no,scrollbars=no,resizable=no,width=500,height=400,left=430,top=150'); return false;" class="btn btn-success btn-sm">Rabais $</button> <button onclick="Popup=window.open('rabais.php?type=article&option=pourcentage&pos=1','Popup','toolbar=no,location=no,status=no,menubar=no,scrollbars=no,resizable=no,width=500,height=400,left=430,top=150'); return false;" class="btn btn-default btn-sm">Rabais %</button></td>
</tr>
如果有人能指出我停止onclick电话的解决方案,我们将不胜感激!
答案 0 :(得分:1)
也许您的条形码扫描器会在实际扫描的条形码值末尾添加回车字符(十六进制0x0D,十进制13)。
回车是通过按键盘上的 Enter 键(键代码== 13)产生的隐形字符,它通常会触发按钮的on_click事件。
如果我的假设是正确的,您可以通过在网页上禁用Enter键来解决问题。这个link可能会提示您如何使用JQuery进行操作。
答案 1 :(得分:1)
我设法使用type =&#34; button&#34;来解决它。在按钮元素内部,导致大多数浏览器在按Enter键时停止调用onclick事件。
谢谢!