input:empty如果没有,则检测空字段

时间:2011-11-18 00:45:19

标签: javascript jquery

使用下面我检查每个输入字段不为空

  if ( $("input:empty").length > 0 )
  {
  $(":text[value=]").css('background', 'rgb(255,220,200)'); 
  $(":text[value!=]").css('background', 'rgb(255,255,255)'); 
  alert('One or more fields are not completed') 
  e.preventDefault();
  return false;     
  }  

即使所有字段都已满,我仍然会收到警报。这里有什么问题?没有字段突出显示我确实尝试提取它是哪个字段,但它什么都没有回来。

2 个答案:

答案 0 :(得分:3)

:empty不表示输入是否包含内容。它指的是节点是否有子节点。因为我不认为你在输入标签中放了任何内容,所以它工作得很好;)

来自docs

  

说明:选择所有没有子项的元素(包括文本节点)。

尝试if ( $('input:text[value=""]').length > 0 )

example

答案 1 :(得分:1)

我认为值属性比较是比较原始的value属性。

...试

$(":text").filter(function() {
    return $.trim(this.value);
});

这将删除仅包含空格的集合中的所有文本输入。