选择Jquery中的所有空文本字段

选择Jquery中的所有空文本字段,jquery,jquery-1.3,Jquery,Jquery 1.3,如何查找所有具有空值的文本字段 $(":text[value='']") 给出一个JavaScript错误 我知道我可以做$(“:text”),迭代并返回所有带有$(this.val()='' 我正在寻找一种更干净的方法,并使用jQuery1.3.1 如果加载页面时元素最初有一个值,然后用户将其清除,那么它必须工作。($(“#elem”).attr('value')给出了该位置的原始值,尽管.val()工作正常)您已经接近了。jQuery选择器中没有赋值,因此您只需要一个“=”: $(":

如何查找所有具有空值的文本字段

$(":text[value='']")  
给出一个JavaScript错误

我知道我可以做
$(“:text”)
,迭代并返回所有带有
$(this.val()=''

我正在寻找一种更干净的方法,并使用jQuery1.3.1
如果加载页面时元素最初有一个值,然后用户将其清除,那么它必须工作。(
$(“#elem”).attr('value')
给出了该位置的原始值,尽管.val()工作正常)

您已经接近了。jQuery选择器中没有赋值,因此您只需要一个“=”:

$(":text[value='']")

在黑暗中拍摄,因为我没有测试它,但这是否有效:

$(":text:empty")

这似乎对我有用

$(":text:not([value])")
最新答案:升级到1.3.2 下面是我通过FireBug在上运行的各种测试

使用特殊的greasemonkey脚本在页面加载时切换不同的jQuery版本

>>> jQuery.prototype.jquery
"1.3.2"
>>> jQuery(":text[value='']")
[input#jq-primarySearch]
Unknown pseudo-class or pseudo-element 'text'.
>>> jQuery(":text[value=]").get()
[input#jq-primarySearch]

>>> jQuery.prototype.jquery
"1.3.1"
>>> jQuery(":text[value='']")
Syntax error, unrecognized expression: value='']
>>> jQuery(":text[value=]").get()
[input#jq-primarySearch]

>>> jQuery.prototype.jquery
"1.3"
>>> jQuery(":text[value='']");
Object length=1 prevObject=Object context=document
Unknown pseudo-class or pseudo-element 'text'.
[Break on this error] undefined
>>> jQuery(":text[value=]").get()
[input#jq-primarySearch]
请注意,1.3和1.3.2正确地处理了它(尽管Firefox发送了一个错误),但它们仍然正确地处理了节点

或者:您可以使用
:text[value=]
符号,它似乎在我尝试的任何地方都适用。只是有点怀疑而已


(忽略我之前的咆哮,他们都是胡说八道,今天过得不好--

我刚刚尝试过这个,效果很好:

$(":text[value=]")

我刚刚删除了选择器中的单引号。

以下代码执行此操作:

  • 在表单中搜索输入字段和文本区域
  • 检查文本值是否为空
  • 为textfield/textarea提供黑色背景色以证明这一点 工作


  • 抱歉,已编辑问题以删除额外的“=”。这给了我一个使用jquery 1.3.1的错误,问题在于将空值传递给属性选择器。我不确定你在做什么,但这个答案对我来说很有用。虽然您的空值可能会从dom中删除:)不,:empty将选择所有文本字段,因为它匹配没有子项的字段这不会给出Javascript错误,但是如果元素最初有一个值,并且用户清除了它,它将不会被选择。我感觉这可能有问题,因为它只指定属性而不是值。所以只有1.3.1有这个问题。。。谢谢这似乎对我也有用。尽管如此,我不确定它是否100%等效。我担心在某些情况下它可能会充当
    $(“:text[value]”
    $('form').find("input[type=text], input[type=password], textarea").each(function(ev)
    {
    
    if(!$(this).val())
    {
       $(this).css("background-color","black");
    }
    
    });