2010-02-04 14 views
7

Ich reiche einige Kommentare über $ .ajax ein. Ich möchte jedoch überprüfen, ob einige Inhalte in das Eingabefeld eingegeben wurden. Im Moment bin ich mit dieser:Überprüfen auf leere Eingabe mit jQuery

if ($("#comments").val().length != 0){ 

Das funktioniert jedoch nur, wenn ein Benutzer verlässt im Eingabe leer, wenn der einen Raum verlassen oder zurückkehren, dann wird es passieren. Wie kann ich das verbessern, wenn?

Antwort

11

entfernen Leerzeichen vor für leere Überprüfung:

if ($("#comments").val().replace(/^\s+|\s+$/g, "").length != 0){ 
+0

wäre dies nützlicher als nur eine Trimmung? – Chris

+1

@Chris - nein - ich wusste nur nicht über die Trimm-Funktion von jQuery. –

8

könnten Sie für eine trim-Funktion gehen ... google geben Sie uns ein paar nette Links. btw ... jQuery hat eine trim-function

z.

var trimmedValue = jQuery.trim($('#comments').val()); 
if (trimmedValue.length > 0) { 
    // TODO 
} 
+0

Noch nicht getestet, aber ich würde denken, dass Sie weiter gehen und jQuery.trim ($ ("# comments"). Val()). Length, da die trim sowieso eine Zeichenfolge zurückgibt. Nicht, dass die zusätzliche Variable wirklich etwas verletzen würde. – thismat

+0

Da ich immer ein Freund der Einführung zusätzlicher Variablen bin, um eine Möglichkeit zum Debuggen zu haben, würde ich es so lassen :) –

+0

Kann das nicht bestreiten. Ich habe nur die Gewohnheit (gut oder schlecht), zusätzliche Variablen zu vermeiden, wenn ich sie nicht wiederverwende. Ich könnte einen guten Fall der Wiederverwendung sehen, wenn Sie den tatsächlichen Inhalt überprüfen möchten. – thismat

1

In JavaScript

//Following all return true 
"" == false 
" " == false 
" " == false 
" " == false 
//Not related to question but interesting 
//Following all (also) return true 
!" " == false 
!" " == false 
!" " == false 
//Except 
!"" == false //returns false 

(Bestätigte mit Firebug-Konsole und Chromium-Entwickler-Tools-Konsole).

+0

Ich stimme nicht mit Ihnen überein: http://jsfiddle.net/cn2YH/ – jerone

+0

@jerone Versuchen Sie nicht mit "!" Operator. Siehe aktualisierte Antwort. –

+0

Ok, Aldo ist es eine sehr seltsame Art, eine Aussage zu überprüfen, ich gebe dir, dass es funktioniert: http://jsfiddle.net/cn2YH/2/ – jerone

1

Ich weiß, dass dies eine unglaublich spät Antwort, aber ich dies mit ...

var self = $(this).val(); 
if (!self || self[0] == ' '){ 
    //////do something 
} 

und es funktioniert gut! hoffe jemand anders kann etwas davon nutzen!

+0

Dies ist keine gute Idee. Was ist mit dem Fall, wenn der Benutzer "gültige Zeichenfolge" eingibt? Das würdest du wahrscheinlich nicht verwerfen wollen. –

+0

Ich denke, es ist möglich, aber warum sollte jemand einen leeren Wert für ihren ersten Char haben? –

+0

Oder sollte ich sagen, brauche einen leeren Wert anstelle von wollen. –

Verwandte Themen