jQuery:检查字段的值是否为空(空)


Answers:


170

字段的值不能为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 ) {...}
}

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元素的A 通常不是您所拥有的。真没用。
Guffa

@Guffa会有所不同,如果<select>您的用户的<option>s来自某种验证,则其空白可能包含选项。
马尔科姆·萨尔瓦多

如果您使用以下解决方案在中提供占位符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

这取决于您要传递给条件信息的类型。

有时您的结果将是nullor undefined''or 0,对于我的简单验证,我使用if。

( $('#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;
        }
    },

利用这些助手来实现这一目标。


这似乎像isStringNullOrEmptyIS isStringFalsey,从而return !val;将工作
马克Schultheiss

0

jQuery提供val()功能和not value()。您可以使用jQuery检查空字符串

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.