jQuery: memeriksa apakah nilai bidang adalah null (kosong)

101

Apakah ini cara yang baik untuk memeriksa apakah nilai bidang null?

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

Atau apakah ada cara yang lebih baik?

ziiweb
sumber
1
jenis elemen apa #person_data? dan apa yang Anda anggap sebagai nilai NULL?

Jawaban:

170

Nilai bidang tidak boleh nol, selalu berupa nilai string.

Kode akan memeriksa apakah nilai string adalah string "NULL". Anda ingin memeriksa apakah itu string kosong:

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

atau:

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

Jika Anda ingin memeriksa apakah elemen tersebut ada, Anda harus melakukannya sebelum memanggil val:

var $d = $('#person_data[document_type]');
if ($d.length != 0) {
  if ($d.val().length != 0 ) {...}
}
Guffa
sumber
31
The value of a field can not be null, it's always a string value.ini tidak sepenuhnya benar. Aku punya selectno berisi options. Ketika saya melakukan .val()ini, ia kembali null. Jquery 1.7.2
Liam
@Pispirulito: Saya rasa tidak, dan menurut saya itu tidak akan diubah. A selecttanpa optionelemen apapun bukanlah sesuatu yang biasa Anda miliki. Ini sangat tidak berguna.
Guffa
@Guffa mohon untuk berbeda, sebuah kosong <select>dapat berisi opsi yang memungkinkan untuk pengguna Anda yang <option>akan datang dari semacam validasi.
Malcolm Salvador
Jika Anda menggunakan solusi berikut untuk menyediakan tempat penampung di Anda select, itu akan dimulai dengan nullnilai karena opsi 'nonaktif' dipilih. stackoverflow.com/questions/5805059/…
Sygmoral
37

Saya juga akan memangkas bidang masukan, karena spasi dapat membuatnya terlihat seperti terisi

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

}
Flipke
sumber
14

Asumsi

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

Anda memiliki kasus ini:

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)

Jadi, gunakan apa yang Anda butuhkan.

darioo
sumber
11

itu tergantung pada jenis informasi yang Anda berikan ke bersyarat ..

terkadang hasil Anda akan nullatau undefinedatau ''atau 0, untuk validasi sederhana saya, saya menggunakan ini jika.

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

CATATAN : null! ='null'

Allan Felipe Murara
sumber
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;
        }
    },

Memanfaatkan pembantu ini untuk mencapai itu.

Nilesh Moradiya
sumber
ini hampir tampak seperti isStringNullOrEmptyitu isStringFalseydan dengan demikian return !val;akan berhasil
Mark Schultheiss
0

jquery menyediakan val()fungsi dan not value(). Anda dapat memeriksa string kosong menggunakan jquery

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

Mencoba

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

Kamil Kiełczewski
sumber