2012-08-17 17 views
12

Ich habe ein Feld, das keine Leerzeichen benötigt. Ich muss alle entfernen, wie sie eingegeben werden. Hier ist, was ich versuche, ... kein Glück so weitStreifen weiße Leerzeichen am Eingang

$('#noSpacesField').click(function() { 
    $(this).val().replace(/ /g,''); 
}); 
+0

Wenn Sie versuchen, sie zu entfernen, wie sie eingegeben werden, müssen Sie 'change' binden,' keyup', 'keypress' usw. Die Bindung an' click' nicht gehen dir zu helfen. – meagar

Antwort

33

Verwenden jQuery trimmen entfernen Vorder- und Hinter Leerraum

$.trim(" test case "); // 'test case' 

alle Leerzeichen zu entfernen ...

" test ing ".replace(/\s+/g, ''); // 'testing' 

Um Leerzeichen zu entfernen, während es eingegeben wird ...

$(function(){ 
    $('#noSpacesField').bind('input', function(){ 
    $(this).val(function(_, v){ 
     return v.replace(/\s+/g, ''); 
    }); 
    }); 
}); 

Live Example

10
$('#noSpacesField').keyup(function() { 
    $(this).val($(this).val().replace(/ +?/g, '')); 
}); 

Dies wird Leerzeichen entfernen, wie Sie schreiben, und wird auch die Registerkarte Zeichen entfernen.

+0

Ich mag Einfachheit, aber ich denke, ich muss binden wie in @ Kyle Beispiel. Danke – santa

+1

Dies erreicht das gleiche wie meine Antwort. – Kyle

+0

@Kyle es jetzt tut. Aber als ich das gepostet habe, hattest du deine Antwort nur als Trimm. Nachdem ich das gepostet habe, hast du deine Antwort editiert, um ein Keyup hinzuzufügen. – Bot

1

Wenn Sie nur Zahlen eingeben möchten, versuchen Sie dies! : D

$("#id").keyUp(function(){ 
    if(isNaN($(this).val())) { 
    $(this).val(0); 
    } 
    $(this).val($(this).val().replace(/ +?/g, '')); 
}) 
Verwandte Themen