我有一个简单的表单,在每一行的末尾有一个按钮,用于在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调用的解决方案,我将不胜感激!
发布于 2015-07-12 07:58:12
也许您的条形码扫描仪会在实际扫描的条形码值的末尾添加回车字符(十六进制0x0D,十进制13)。
回车符是看不见的字符,也是通过按键盘上的Enter键(键代码== 13)产生的,它通常触发按钮的on_click事件。
如果我的假设是正确的,你可以通过在你的网页上禁用Enter键来解决你的问题。此link可能会提示您如何使用JQuery来完成此操作。
发布于 2015-07-12 12:01:15
我已经设法解决了这个问题,在按钮元素中使用type=“按钮”,这会导致大多数浏览器在按回车键时停止调用onclick事件。
谢谢!
https://stackoverflow.com/questions/31362053
复制相似问题