我有一个文件输入框列表,我想知道它们中是否有任何一个使用单个选择器语句的值。我可以这样做:
$('input:file[value!=null]')
或类似的东西。
答案 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]')