2014-10-21 9 views
5

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

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.

+0

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

+0

Forse funzionerà per farlo solo nell'evento keypress per quella casella di input – TGH

+0

Hai ragione, non ci ho pensato, grazie! – dulan

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>

JSFIDDLE HERE

+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;