如何在运行条形码扫描仪时停止提交表单

tru*_*iso 8 javascript coldfusion

我正在尝试阻止表单在使用条形码扫描仪时将提交文本输入突出显示的字段.当我按下扫描仪上的按钮时,它会自动尝试使用表单中的更高优先级提交按钮进行提交.我试图在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>
Run Code Online (Sandbox Code Playgroud)

Uza*_*air 8

到目前为止我找到的最佳解决方案

$(":input").keypress(function(event){
    if (event.which == '10' || event.which == '13') {
        event.preventDefault();
    }
});
Run Code Online (Sandbox Code Playgroud)


Tra*_*vis 5

我投票支持existdissolve的答案,因为扫描仪应该是可配置的。

然而,一个非常简单的 JavaScript 解决方案是在 onSubmit 上返回 false,除非实际单击了提交按钮以允许提交表单。像这样的事情——

<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>
Run Code Online (Sandbox Code Playgroud)


exi*_*lve 3

大多数扫描仪允许您对扫描过程中发送的字符进行编程。您通常可以在网上找到扫描仪的型号手册,下载它,然后扫描正确的编程代码,让扫描仪发送您想要的内容。