Ho un modulo html con alcuni campi di input, un campo di input è un campo di ricerca, quando faccio clic sul pulsante di ricerca accanto a questo campo di inserimento di ricerca, i risultati di ricerca essere restituito dal server utilizzando ajax, ciò che voglio è impedire l'invio di moduli quando l'utente si concentra su questo specifico campo di input di ricerca e premi invio. A proposito, sto usando AngularJS, quindi la soluzione potrebbe essere un po 'diversa da JQuery o in puro modo javascript. Penso che sia possibile? Tutto il consiglio sarebbe apprezzato!modulo html prevedi invio quando premi invio su input specifico
5
A
risposta
2
Nel gestore scatto del tasto fare un e.preventDefault()
function clickHandler(e){
e.preventDefault();
}
È possibile anche utilizzare un button
al posto di un pulsante di invio.
3
utilizzare una funzione del tipo:
function doNothing() {
var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
if(keyCode == 13) {
\t if(!e) var e = window.event;
\t e.cancelBubble = true;
\t e.returnValue = false;
\t if (e.stopPropagation) {
\t \t e.stopPropagation();
\t \t e.preventDefault();
\t }
}
<form name="input" action="http://www.google.com" method="get">
<input type="text" onkeydown="doNothing()">
<br><br>
<input type="submit" value="Submit">
</form>
+0
sì, per angularJS, tutto quello che devo fare è cambiare onKeyDown su ng-keydown, subito! Grazie! – dulan
0
When you submit form using enter key on particular text fields or submit button(focus).
To prevent form submit twice, we can use both approach
1.
define var isEnterHitOnce=true globally which loaded at the time of form load
on keyPress Event or on submitForm()
if(event.keycode==13 && isEnterHitOnce){
isEnterHitOnce=false;
//Process your code. Sent request to server like submitForm();
}
isEnterHitOnce=false;
2.
disable the field object from where you received the action like
beginning of method in formSubmit()
document.getElementById(objName).disabled=true; // objName would be your fields name like submitButton or userName
//At the end of method or execution completed enable the field
document.getElementById(objName).disabled=false;
Questo non impedisce tutte le richieste? È possibile impedire solo l'invio di moduli quando l'utente si concentra su questo campo di input e non sugli altri? A proposito, sto usando angularJS, dove dovrei inserire questo codice? – dulan
Forse funzionerà per farlo solo nell'evento keypress per quella casella di input – TGH
Hai ragione, non ci ho pensato, grazie! – dulan