2012-06-29 10 views
9

So habe ich eine HTML Form, die Benutzer eingeben können. Wie kann ich Javascript/jQuery verwenden, um sofort und nahtlos Leerzeichen aus einer Textbox zu entfernen, wenn eine eingefügt wird? Ich habe die Erforschung der .val() jQuery-Methode und kam mit dieser:Verhindern von Leerzeichen in einem HTML-Textfeld mit jQuery eingeben

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

Das seltsame Dinge tut, um Text zu entfernen und die Räume zeigen nach wie vor auf Tastendruck nach oben, sie nur auf der folgenden Tastendruck entfernt erhalten. Irgendwelche Vorschläge?

Antwort

25

Sie es aus hinzugefügt überhaupt durch Überprüfen, ob der Schlüssel die Leertaste gedrückt ist und die Rückkehr false wenn so verhindern könnte:

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

Hier ist ein working example.

+2

Dieser Code enthält einige Gremlins. – alt

+0

Danke Mann! Funktioniert perfekt! – alt

+0

@JacksonGariety - Was ist los damit/Was meinst du mit "Gremlins"? –

11

Ausprobieren Verwenden keyup

Live Demo

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

Das fügt auch hinzu und entfernt es schnell, sichtbar, und Sie können auch keinen Text auswählen, um es zu löschen (mit CMD + A). :/ – alt

+0

Ich denke diese Option ist sehr gut. Weil es auch kopierte und eingefügte Leerzeichen löscht. – Jesse

Verwandte Themen