jQuery: bir alanın değerinin boş olup olmadığını kontrol etme (boş)


Yanıtlar:


170

Bir alanın değeri boş olamaz, her zaman bir dize değeridir.

Kod, dize değerinin "NULL" dizesi olup olmadığını kontrol edecektir. Bunun yerine boş bir dize olup olmadığını kontrol etmek istersiniz:

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

veya:

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

Öğenin var olup olmadığını kontrol etmek istiyorsanız, bunu aramadan önce yapmanız gerekir 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.bu tamamen doğru değil. Bir var selecthayır içeren options. Bunu gerçekleştirdiğimde .val()geri dönüyor null. Jquery 1.7.2
Liam

@Pispirulito: Sanmıyorum ve değişeceğini de sanmıyorum. Bir selectherhangi olmadan optionelemanları normalde olması bir şey değildir. Oldukça yararsız.
Guffa

@Guffa farklı olmak için yalvarırsa, bir boş, bir tür doğrulamadan gelecek <select>olan kullanıcınız için olası seçenekler içerebilir <option>.
Malcolm Salvador

Aşağıdaki çözümü, sizin yerinize bir yer tutucu sağlamak için kullanırsanız select, nullbir 'devre dışı' seçeneği seçildiğinden , bir değerle başlayacaktır . stackoverflow.com/questions/5805059/…
Sygmoral

37

Ayrıca giriş alanını da kırpardım, çünkü bir boşluk onu dolu gibi gösterebilir

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

}

14

Varsayım

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

bu davalara sahipsin:

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)

Öyleyse ihtiyacınız olanı kullanın.


11

bu, koşulluya ne tür bilgiler aktardığınıza bağlıdır ..

bazen sonucunuz nullveya undefinedveya ''veya 0, benim basit doğrulamam için bunu kullanıyorum eğer.

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

NOT : 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;
        }
    },

Bunu başarmak için bu yardımcıları kullanın.


bu neredeyse gibi görünüyor isStringNullOrEmptyIS isStringFalseyve böylece return !val;çalışacak
Mark Schultheiss

0

jquery val()işlevi sağlar ve not value(). Jquery kullanarak boş dizeyi kontrol edebilirsiniz

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

0

Deneyin

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

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.