jQuery: ตรวจสอบว่าค่าของเขตข้อมูลเป็นโมฆะ (ว่างเปล่า)


102

นี่เป็นวิธีที่ดีในการตรวจสอบว่าค่าของฟิลด์คือnullอะไร?

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

หรือมีวิธีที่ดีกว่านี้?


1
#person_data เป็นองค์ประกอบประเภทใด และคุณคิดว่าอะไรเป็นค่า NULL?

คำตอบ:


170

ค่าของฟิลด์ไม่สามารถเป็นค่าว่างได้ แต่จะเป็นค่าสตริงเสมอ

รหัสจะตรวจสอบว่าค่าสตริงเป็นสตริง "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 ) {...}
}

31
The value of a field can not be null, it's always a string value.นี่ไม่เป็นความจริงทั้งหมด ฉันมีมีไม่มีselect optionsเมื่อฉันดำเนินการ.val()นี้มันจะกลับnullมา Jquery 1.7.2
Liam

@Pispirulito: ฉันไม่คิดอย่างนั้นและฉันไม่คิดว่ามันจะเปลี่ยนไป การselectไม่มีoptionองค์ประกอบใด ๆไม่ใช่สิ่งที่คุณมีตามปกติ มันค่อนข้างไร้ประโยชน์
Guffa

@Guffa ขอให้แตกต่างกันช่องว่าง<select>สามารถมีตัวเลือกที่เป็นไปได้สำหรับผู้ใช้ของคุณซึ่ง<option>จะมาจากการตรวจสอบความถูกต้องบางประเภท
Malcolm Salvador

หากคุณใช้โซลูชันต่อไปนี้เพื่อระบุตัวยึดตำแหน่งในของคุณselectระบบจะเริ่มต้นด้วยnullค่าเนื่องจากมีการเลือกตัวเลือก "ปิดใช้งาน" stackoverflow.com/questions/5805059/…
Sygmoral

37

ฉันจะตัดช่องป้อนข้อมูลด้วยเพราะช่องว่างอาจทำให้ดูเหมือนเต็มไปหมด

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

}

14

สมมติ

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)

ดังนั้นใช้สิ่งที่คุณต้องการ


11

ขึ้นอยู่กับชนิดของข้อมูลที่คุณส่งผ่านไปยังเงื่อนไข ..

บางครั้งผลลัพธ์ของคุณจะเป็นnullหรือundefinedหรือ''หรือ0สำหรับการตรวจสอบอย่างง่ายของฉันฉันใช้สิ่งนี้หาก

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

หมายเหตุ : 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;
        }
    },

ใช้ตัวช่วยนี้เพื่อบรรลุเป้าหมายนั้น


สิ่งนี้ดูเหมือนisStringNullOrEmptyจะเป็นเช่นนั้นisStringFalseyและreturn !val;จะได้ผล
Mark Schultheiss


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.