2012-11-25 9 views

risposta

22

È possibile indirizzare tale ingresso specifico con l'aggiunta di un ID ad esso e semplicemente rimuovendo l'evento KeyDown per entrare in questo modo:

JS

$(document).ready(function() { 
    $('form input').keydown(function(event){ 
    if(event.keyCode == 13) { 
     event.preventDefault(); 
     return false; 
    } 
    }); 
}); 
+2

Si potrebbe non desiderare il 'return false'. @See http://fuelyourcoding.com/jquery-events-stop-misusing-return-false/ – Snekse

+1

Forse @paganotti vuole premere il tasto invio per inviare il modulo su altri input e ignorare solo l'input del tag. – hieund

3

La prima risposta non ha funzionato per me , forse a causa dell'aggiornamento del plug-in typeahead, ma ho superato il problema utilizzando l'input "alternativo" creato da typehead:

$(".twitter-typeahead > input").focus(function(){ 
    //disable btn when focusing the input 
    $("#my_submit_button").prop('disabled', true); 
}).blur(function(){ 
    //enable btn when bluring the input 
    $("#my_submit_button").prop('disabled', false); 
}); 
2

Secondo il documentation, è possibile impostare l'opzione confirmKeys a qualcosa di altro che di ritorno (13):

$('input').tagsinput({ 
    confirmKeys: [188, 32, 39], 
}); 

Tuttavia, un modo più intelligente per andare su questo è quello di prevent sending the form on enter.

1

Il modo migliore che ho trovato per avvicinarsi a questo non è quello di utilizzare un input di invio. Utilizzare invece un pulsante di input e aggiungere alcuni js per inviare il modulo quando viene fatto clic.

$('#my_submit_button').click(function(){ 
    $(this).parents('form').submit(); 
}); 
Problemi correlati