2012-06-29 10 views
9

Quindi ho un modulo HTML che gli utenti possono digitare. Come posso utilizzare javascript/jQuery per rimuovere immediatamente e senza problemi spazi da una casella di testo quando ne viene inserito uno? Sono stato alla ricerca del metodo di jQuery .val() e arrivato fino a questo:Impedisci di digitare spazi in una casella di testo HTML con jQuery

$('input').keydown(function() { 
    str = $(this).val(); 
    str = str.replace(/\s/g,''); 
    $(this).val(str); 
}); 

che fa cose strane a rimuovere il testo e gli spazi mostrano ancora su battitura, hanno appena vengono rimossi sulla seguente sequenza di tasti. Eventuali suggerimenti?

risposta

25

Si potrebbe evitare che venga aggiunto a tutti controllando se il tasto premuto è la barra spaziatrice e il ritorno false in caso affermativo:

​$("input").on("keydown", function (e) { 
    return e.which !== 32; 
});​​​​​ 

Ecco uno working example.

+2

Questo codice contiene alcuni gremlins. – alt

+0

Grazie amico! Funziona perfettamente! – alt

+0

@JacksonGariety - Cosa c'è di sbagliato in esso/Cosa intendi con "gremlins"? –

11

uso Prova keyup

Live Demo

$('input').keyup(function() { 
    str = $(this).val(); 
    str = str.replace(/\s/g,''); 
    $(this).val(str); 
}); 
+0

Anche questo lo aggiunge e lo rimuove rapidamente, visibilmente, e inoltre non è possibile selezionare il testo per eliminarlo (con CMD + A). :/ – alt

+0

Penso che questa opzione sia molto buona. Perché annulla anche copia e spazi incollati. – Jesse

Problemi correlati