我有一個文件輸入框的列表,我想知道他們是否有一個使用單個選擇器語句的值。我可以這樣做:我可以根據JQuery中的值選擇輸入節點嗎?
$('input:file[value!=null]')
或類似的東西。
我有一個文件輸入框的列表,我想知道他們是否有一個使用單個選擇器語句的值。我可以這樣做:我可以根據JQuery中的值選擇輸入節點嗎?
$('input:file[value!=null]')
或類似的東西。
更新:請參閱@bobince的評論。這是jQuery的Sizzle選擇器的一個錯誤,因爲屬性和屬性之間的界線模糊不清。相關的線從jQuery的源:
elem[ name ] != null ?
elem[ name ] :
elem.getAttribute(name),
它查找該名稱的對象的屬性首先,如果失敗,退回來的getAttribute()。按照@Aaron的建議,最好過濾val()
。
null
將被解釋爲字符串。因此,名稱爲「null」的選定文件將被排除。相反,只需選擇value屬性所在的文件元素即可。值應該只有被定義,如果用戶選擇了該字段的文件。
$('input:file[value]')
使用的東西.filter()可能的工作:
$('input:file').filter(function (file) {
return $(this).val().length > 0;
})
大概你的意思是'val().length> 0'。 – bobince 2010-04-14 23:27:05
噢,當然對不起,我會編輯它 – 2010-04-14 23:29:42
輝煌,就像一個魅力。謝謝!一旦涼爽結束,我會立即接受。 – Matt 2010-04-14 23:03:15
這隻會選擇''帶有'value =「...」* *屬性*存在 - 除IE外,由於它處理表單字段值的錯誤。您可能不會在任何文件輸入中放置「value」屬性,因爲瀏覽器對文件輸入的默認值沒有任何作用。如果你正在尋找文件輸入方式不同的文件,那麼你需要按照Aaron的方式去做。 – bobince 2010-04-14 23:27:34
@bobince,指定':file'過濾器在這裏做了一些jQuery魔術(我不知道該說些什麼),但它讓jQuery看起來像'