反向验证jQuery空输入字段

时间:2013-11-01 08:34:19

标签: jquery validation

所以我只是想确定输入字段的值是空还是空。使用jQuery的.val()函数可以很简单。将其与反向验证相结合,您就可以得到:

if($('input').val() != '' || $('input').val() != null)
{
   //any code
}

然而由于某种原因,这并没有像往常那样成功。 相反,我必须使用它:

if(!$('input').val() == '' || !$('input').val() == null)
{
   //any code
}

所以我想知道:这两者之间的区别是什么?为什么第一个代码与第二个代码的工作方式不同?

第一个代码的

jsFiddle
jsFiddle 第二个代码

更新

添加了一个选择框。

1 个答案:

答案 0 :(得分:2)

首先,val()不能同时为空字符串和null。这就是if($('input').val() != '' || $('input').val() != null) 总是返回true

的原因

在这种情况下你需要&&

第二个例子更有趣。由于JS不是强类型语言,!$('input').val() == ''会尝试将!$('input').val()与空字符串进行比较,即它将$('input').val()转换为bool,否定它,获取false结果,并将此值与空字符串进行比较。

最好的部分:false == ''等于... true!隐式类型转换做得很好。

你能做什么?

  1. 在第一个示例中,只需将||更改为&&

    if ($('input').val() != '' && $('input').val() != null)
    
  2. 在第二个中你应该修复操作顺序:

    if (!($('input').val() == '') && !($('input').val() == null))
    

    或更好

    if (!($('input').val() == '' || $('input').val() == null))