jQuery: Überprüfen, ob der Wert eines Feldes null ist (leer)


Antworten:


170

Der Wert eines Feldes darf nicht null sein, es ist immer ein Zeichenfolgenwert.

Der Code prüft, ob der Zeichenfolgenwert die Zeichenfolge "NULL" ist. Sie möchten stattdessen überprüfen, ob es sich um eine leere Zeichenfolge handelt:

if ($('#person_data[document_type]').val() != ''){}

oder:

if ($('#person_data[document_type]').val().length != 0){}

Wenn Sie überprüfen möchten, ob das Element überhaupt vorhanden ist, sollten Sie dies vor dem Aufruf tun val:

var $d = $('#person_data[document_type]');
if ($d.length != 0) {
  if ($d.val().length != 0 ) {...}
}

31
The value of a field can not be null, it's always a string value.das ist nicht ganz richtig. Ich habe eine selectenthaltende Nr options. Wenn ich das mache .val(), kehrt es zurück null. Jquery 1.7.2
Liam

@Pispirulito: Ich denke nicht, und ich denke nicht, dass es geändert wird. A selectohne optionElemente ist etwas, das Sie normalerweise nicht haben. Es ist ziemlich nutzlos.
Guffa

@Guffa bitte zu unterscheiden, ein Leerzeichen <select>kann mögliche Optionen für Ihren Benutzer enthalten, deren <option>s aus einer Art Validierung stammen.
Malcolm Salvador

Wenn Sie die folgende Lösung verwenden, um einen Platzhalter in Ihrem bereitzustellen select, beginnt dieser mit einem nullWert, da die Option "Deaktiviert" ausgewählt ist. stackoverflow.com/questions/5805059/…
Sygmoral

37

Ich würde auch das Eingabefeld kürzen, da ein Leerzeichen es wie gefüllt aussehen lassen könnte

if ($.trim($('#person_data[document_type]').val()) != '')
{

}

14

Vorausgesetzt

var val = $('#person_data[document_type]').value();

Sie haben diese Fälle:

val === 'NULL';  // actual value is a string with content "NULL"
val === '';      // actual value is an empty string
val === null;    // actual value is null (absence of any value)

Verwenden Sie also, was Sie brauchen.


11

Das hängt davon ab, welche Art von Informationen Sie an die Bedingung weitergeben.

Manchmal ist Ihr Ergebnis nulloder undefinedoder ''oder 0, für meine einfache Validierung verwende ich dies, wenn.

( $('#id').val() == '0' || $('#id').val() == '' || $('#id').val() == 'undefined' || $('#id').val() == null )

HINWEIS : null! ='null'


6
_helpers: {
        //Check is string null or empty
        isStringNullOrEmpty: function (val) {
            switch (val) {
                case "":
                case 0:
                case "0":
                case null:
                case false:
                case undefined:
                case typeof this === 'undefined':
                    return true;
                default: return false;
            }
        },

        //Check is string null or whitespace
        isStringNullOrWhiteSpace: function (val) {
            return this.isStringNullOrEmpty(val) || val.replace(/\s/g, "") === '';
        },

        //If string is null or empty then return Null or else original value
        nullIfStringNullOrEmpty: function (val) {
            if (this.isStringNullOrEmpty(val)) {
                return null;
            }
            return val;
        }
    },

Nutzen Sie diese Helfer, um dies zu erreichen.


dies scheint fast wie isStringNullOrEmptyheißt isStringFalseyund so return !val;funktionieren würde
Mark Schultheiss

0

jquery bietet val()Funktion und not value(). Sie können leere Zeichenfolgen mit jquery überprüfen

if($('#person_data[document_type]').val() != ''){}

0

Versuchen

if( this["person_data[document_type]"].value != '') { 
  console.log('not empty');
}
<input id="person_data[document_type]" value="test" />

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.