2012-06-29 9 views
9

Tengo un formulario HTML que los usuarios pueden escribir. ¿Cómo puedo usar javascript/jQuery para eliminar de forma inmediata y sin problemas los espacios de un cuadro de texto cuando se coloca uno? He estado investigando el método jQuery .val() y se acercó con esto:Evite escribir espacios en un cuadro de texto HTML con jQuery

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

Eso hace cosas extrañas a la eliminación de texto y los espacios todavía aparece en las pulsaciones de teclas, sólo se eliminan en la siguiente pulsación de tecla. ¿Alguna sugerencia?

Respuesta

25

Se podría evitar que sea añadido en absoluto comprobando si la tecla pulsada es la barra de espacio y regresar false si es así:

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

Aquí hay un working example.

+2

Ese código tiene algunos gremlins en él. – alt

+0

Gracias hombre! ¡Funciona perfectamente! – alt

+0

@JacksonGariety - ¿Qué tiene de malo/Qué quiere decir con "gremlins"? –

11

uso Try keyup

Live Demo

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

Eso también lo agrega y lo elimina rápidamente, visiblemente, y también no puede seleccionar texto para eliminarlo (con CMD + A). :/ – alt

+0

Creo que esta opción es muy buena. Porque también anula los espacios de copia y pegado. – Jesse

Cuestiones relacionadas