我可以根据JQuery中的值选择输入节点吗?

时间:2010-04-14 22:49:47

标签: javascript jquery

我有一个文件输入框列表,我想知道它们中是否有任何一个使用单个选择器语句的值。我可以这样做:

$('input:file[value!=null]')

或类似的东西。

2 个答案:

答案 0 :(得分:3)

使用.filter()的东西可能会起作用:

$('input:file').filter(function (file) {
                  return $(this).val().length > 0;
                })

答案 1 :(得分:2)

更新:请参阅@bobince的评论。这是jQuery的Sizzle选择器的一个错误,因为属性和属性之间的界限是模糊的。来自jQuery源代码的相关行:

elem[ name ] != null ?
    elem[ name ] :
    elem.getAttribute( name ),

首先按该名称查找对象的属性,如果失败,则返回getAttribute()。最好根据@Aaron的建议过滤val()

<小时/> 留下这里的旧答案是为了让其他人受益,这可能会碰到这个无辜的选择。

null将被解释为字符串。因此,将排除名为“null”的所选文件。而是只选择value属性所在的文件元素。如果用户为该字段选择了文件,则应该仅定义

$('input:file[value]')