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

IT技术 javascript jquery forms
2021-03-14 04:06:40

这是检查字段值是否为的好方法null吗?

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

或者,还有更好的方法?

6个回答

字段的值不能为空,它总是一个字符串值。

代码将检查字符串值是否为字符串“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 ) {...}
}
The value of a field can not be null, it's always a string value.这并不完全正确。我有一个select包含 no options当我执行.val()此操作时,它返回null. jQuery 1.7.2
2021-04-30 04:06:40
@Guffa 不同意,空<select>可以包含您的用户的可能选项,其<option>s 将来自某种验证。
2021-05-04 04:06:40
@Pispirulito:我不这么认为,我认为它不会改变。select没有任何option元素的A不是您通常拥有的东西。这很没用。
2021-05-07 04:06:40
这对我有用不等于空 if ($('#person_data[document_type]').val() !== null){}
2021-05-09 04:06:40
如果您使用以下解决方案在您的 中提供占位符select,它将以一个null开头,因为选择了“禁用”选项。stackoverflow.com/questions/5805059/...
2021-05-15 04:06:40

我也会修剪输入字段,因为空格可能使它看起来像填充

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)

所以,使用你需要的。

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

有时您的结果将是nullorundefined''or 0,为了我的简单验证,我使用这个 if。

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

注意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;
        }
    },

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

这几乎似乎isStringNullOrEmptyisStringFalsey,因此return !val;会起作用
2021-04-30 04:06:40