2013-02-12 9 views
5

Ich versuche, das Senden eines Formulars zu unterbinden, wenn ein Barcode-Scanner zum Eingeben von Text in das hervorgehobene Feld verwendet wird. Wenn ich den Knopf des Scanners drücke, versucht es automatisch mit einer Übergabeschaltfläche mit höherer Priorität im Formular. Ich habe versucht, eine Ignorierfunktion in Javascript zu verwenden, aber kann den Schlüsselcodewert für den Scanner nicht finden. Gibt es eine Möglichkeit, den Vorrang der verschiedenen Schaltflächen zum Senden festzulegen, ohne sie neu anordnen zu müssen? Dies ist, wie ich die Tasten haben im Code ein:So verhindern Sie das Senden eines Formulars beim Ausführen des Barcodescanners

<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

gefunden Wo die Daten aus dem gescannten Barcode gehen? –

+0

Es wird nur in ein Textfeld auf der Seite gescannt, damit sie es nicht eingeben müssen. – trueinViso

+0

Fügen Sie möglicherweise einen onsubmit-Handler hinzu und sehen Sie, was das event.target ausgelöst hat. – epascarello

Antwort

3

Die meisten Scanner ermöglicht es Ihnen, welche Zeichen zu programmieren, werden als Teil des Scans gesendet. Normalerweise finden Sie das Modell des Scanners online, laden Sie es herunter und scannen Sie dann die richtigen Programmiercodes, um den Scan über das zu senden, was Sie wollen.

1

Wenn der Scanner ein Textfeld eingibt, starten Sie Ihr Formular mit Ihrem Absenden-Schaltfläche ausgeblendet. Zeige es nur, wenn das Textfeld Daten enthält. Dies geschieht mit Javascript, nicht mit ColdFusion.

+0

Ich glaube, dass der Scanner das Formular dennoch senden wird, da die meisten so konfiguriert sind, dass sie den gescannten Text und ein Rücksprungzeichen senden. – existdissolve

4

Ich habe für die Antwort von existdissolve gewählt, weil der Scanner konfigurierbar sein sollte.

Eine sehr einfache JavaScript-Lösung wäre jedoch, false onSubmit zurückzugeben, es sei denn, die Schaltfläche zum Senden wird tatsächlich angeklickt, damit das Formular gesendet werden kann. So etwas wie diese -

<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> 
4

beste Lösung, die ich bisher

$(":input").keypress(function(event){ 
    if (event.which == '10' || event.which == '13') { 
     event.preventDefault(); 
    } 
}); 
Verwandte Themen