Ist dies ein guter Weg, um zu überprüfen, ob der Wert eines Felds null ist?
if($('#person_data[document_type]').value() != 'NULL'){}
Oder gibt es einen besseren Weg?
Der Wert eines Feldes darf nicht null sein, es ist immer ein Zeichenfolgewert.
Der Code prüft, ob der Wert der Zeichenfolge 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 prüfen möchten, ob das Element überhaupt vorhanden ist, sollten Sie dies tun, bevor Sie val
aufrufen:
var $d = $('#person_data[document_type]');
if ($d.length != 0) {
if ($d.val().length != 0 ) {...}
}
Ich würde auch das Eingabefeld abschneiden, da ein Leerzeichen dazu führen könnte, dass es ausgefüllt erscheint
if ($.trim($('#person_data[document_type]').val()) != '')
{
}
Angenommen,
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)
Also benutze was du brauchst.
das hängt davon ab, welche Art von Informationen Sie an die Bedingung übergeben.
manchmal ist Ihr Ergebnis null
oder undefined
oder ''
oder 0
. Für meine einfache Überprüfung verwende ich dies, wenn.
( $('#id').val() == '0' || $('#id').val() == '' || $('#id').val() == 'undefined' || $('#id').val() == null )
NOTE: null
! = 'null'
_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 das zu erreichen.
Versuchen
if( this["person_data[document_type]"].value != '') {
console.log('not empty');
}
<input id="person_data[document_type]" value="test" />
jquery bietet val()
function und not value()
. Sie können die leere Zeichenfolge mit Jquery überprüfen
if($('#person_data[document_type]').val() != ''){}