7

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

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

给出一个 JavaScript 错误

我知道我可以做$(":text"),遍历并返回所有字段$(this).val()==''

我正在寻找一种更简洁的方法并使用 JQuery 1.3.1 如果元素在页面加载时最初有一个值,然后用户清除它,它必须工作。($("#elem").attr('value')给出那个地方的原始值,虽然 .val() 工作正常)

4

6 回答 6

11

最新答案:升级到 1.3.2

这是我在http://docs.jquery.com/Downloading_jQuery上通过 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=]符号,它似乎在我尝试过的任何地方都有效。它只是有点怀疑就是这样。

(忽略我以前的咆哮,他们都是胡说八道,没有美好的一天-_-)

于 2009-03-11T17:05:04.880 回答
4

我刚刚尝试过,对我来说效果很好:

$(":text[value=]")

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

于 2009-03-11T22:49:15.830 回答
2

你很亲密。jQuery 选择器中没有赋值,所以你只需要一个'=':

$(":text[value='']")
于 2009-03-11T16:15:57.570 回答
1

这似乎对我有用

$(":text:not([value])")
于 2009-03-11T16:47:27.370 回答
1

以下代码执行此操作:

  1. 在表单中搜索输入字段和文本区域
  2. 检查文本值是否为空
  3. 给 textfield/textarea 一个黑色的背景色来证明这行得通

    $('form').find("input[type=text], input[type=password], textarea").each(function(ev)
    {
    
    if(!$(this).val())
    {
       $(this).css("background-color","black");
    }
    
    });
    
于 2012-09-26T16:23:10.393 回答
-2

因为我没有测试过,所以在黑暗中拍摄,但这样做是否有效:

$(":text:empty")
于 2009-03-11T16:34:37.650 回答