これは、フィールドの値がnull
であるかどうかを確認する良い方法ですか?
if($('#person_data[document_type]').value() != 'NULL'){}
または、より良い方法がありますか?
フィールドの値はnullにできません。常に文字列値です。
コードは、文字列値が文字列「NULL」であるかどうかを確認します。代わりに空の文字列であるかどうかを確認したい:
if ($('#person_data[document_type]').val() != ''){}
または:
if ($('#person_data[document_type]').val().length != 0){}
要素が存在するかどうかを確認する場合は、val
を呼び出す前に確認する必要があります。
var $d = $('#person_data[document_type]');
if ($d.length != 0) {
if ($d.val().length != 0 ) {...}
}
また、入力フィールドをトリムします。スペースがいっぱいになったように見える可能性があります
if ($.trim($('#person_data[document_type]').val()) != '')
{
}
想定
var val = $('#person_data[document_type]').value();
次の場合があります。
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)
したがって、必要なものを使用してください。
条件に渡す情報の種類によって異なります。
時々あなたの結果はnull
またはundefined
または''
または0
になります。私の簡単な検証のために私はこれを使用します。
( $('#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;
}
},
このヘルパーを利用してそれを達成します。
試して
if( this["person_data[document_type]"].value != '') {
console.log('not empty');
}
<input id="person_data[document_type]" value="test" />
jqueryはval()
関数とnot value()
を提供します。 jqueryを使用して空の文字列を確認できます
if($('#person_data[document_type]').val() != ''){}