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

发布于 2024-07-15 19:19:14 字数 328 浏览 11 评论 0原文

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

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

给出 JavaScript 错误

我知道我可以执行 $(":text"),迭代并使用 $(this).val()=='' 返回所有字段

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

How can I find all text fields that have an empty value?

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

gives a JavaScript error

I know I can do $(":text"), iterate through and return all fields with $(this).val()==''

I am looking for a cleaner method and using JQuery 1.3.1
It has to work if the element originally had a value when the page was loaded, and then the user cleared it. ($("#elem").attr('value') gives the original value in that place, though .val() works properly)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

乙白 2024-07-22 19:19:14

最新答案:升级到 1.3.2

以下是我通过 FireBug 在 http://docs.jquery.com/ 上运行的各种测试Downloading_jQuery

不同的 jQuery 版本在页面加载时使用特殊的 Greasemonkey 脚本进行切换。

>>> 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=] 表示法,它似乎在我尝试过的任何地方都有效。 只是有点怀疑而已。

(忽略我之前的咆哮,都是胡说八道,没有愉快的一天-_-)

Latest Answer: Upgrade to 1.3.2

Here are various tests I ran via FireBug on http://docs.jquery.com/Downloading_jQuery

Different jQuery versions are switched in at page-load with special greasemonkey scripts.

>>> 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]

Note that 1.3 and 1.3.2 handle it properly ( albeit with Firefox sending an error ) but they still get the node right.

Alternatively: you could use the :text[value=] notation, which appears to work everywhere I tried it. Its just a bit suspect thats all.

( Ignore my Previous rantings, they're all bollocks, not having a good day -_-)

探春 2024-07-22 19:19:14

我刚刚尝试过这个并且对我来说效果很好:

$(":text[value=]")

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

I've just tried this and worked fine for me:

$(":text[value=]")

I just removed single quotes in selector.

看透却不说透 2024-07-22 19:19:14

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

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

You were close. There's no assignment in jQuery selectors, so you only need a single '=':

$(":text[value='']")
墨小沫ゞ 2024-07-22 19:19:14

这似乎对我有用

$(":text:not([value])")

This seems to work for me

$(":text:not([value])")
请爱~陌生人 2024-07-22 19:19:14

以下代码执行此操作:

  1. 搜索表单中的输入字段和文本区域
  2. 检查文本值是否为空
  3. 为文本字段/文本区域提供黑色背景颜色以证明这一点
    作品

    $('form').find("input[type=text], input[type=password], textarea").each(function(ev) 
      { 
    
      if(!$(this).val()) 
      { 
         $(this).css("背景颜色","黑色"); 
      } 
    
      }); 
      

The following code does this:

  1. Searches the form for inputfields and textareas
  2. Checks if the text value is empty or not
  3. gives the textfield/textarea a black background-color to prove this
    works

    $('form').find("input[type=text], input[type=password], textarea").each(function(ev)
    {
    
    if(!$(this).val())
    {
       $(this).css("background-color","black");
    }
    
    });
    
枯叶蝶 2024-07-22 19:19:14

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

$(":text:empty")

Shot in the dark as I haven't tested it, but does this work:

$(":text:empty")
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文