2012-10-12 102 views
0

當我使用$("input[type=text]")時,我絕對是指所有文本框,但它只返回已爲其設置類型的輸入。jQuery:獲取沒有定義類型的所有文本輸入

例如在:

<input name="text1" /> 
<input name="text2' type="text"/> 

text1不包括在內。

如何獲取所有文本輸入,無論類型是否已設置?

+4

從技術上講,輸入只是一個文本輸入,如果你說type =「text」 – Huangism

+0

我明白了,但是當我們沒有設置任何類型時,默認顯示爲「text」 – Omid

+0

是的,它似乎驗證,只要你的名字屬性有「文本」,你就可以使用關於名字的答案,或者你總是可以做很長的路要說除了收音機,提交,複選框和其他任何其他的輸入 – Huangism

回答

5

選擇type = text和那些不帶type屬性的類型。

$("input[type=text],input:not([type])") 
+2

+1這裏是[小提琴] (http://jsfiddle.net/gromer/a7nsX/)展示它的行動。 – Gromer

0

如果您輸入的所有名稱都包含「文本」(否則您會如何理解它是文本框?),您可以嘗試。

$('input[name*="text"]'); 
3
$('input:text') 

From the official documentation:

在jQuery 1.5.2的,:文本選擇具有輸入元件沒有 指定的類型屬性(在這種情況下,暗示type =「text」)。

+1

':text'選項已被棄用。 – undefined

0

如果您未設置類型,那麼[type =「text」]將排除沒有類型的類型。

如果您選擇$('input'),您將獲得每個輸入,而不管類型如何,以便可以是文本字段,也可以不是。但它仍然適用於每個輸入字段。

如果您沒有設置類型,它將不會顯示爲type = text,但它將以這種方式呈現。這意味着你不能只選擇[類型=「文本」],但你總是可以排除他人雖然如下:

$('input[type=text]','input:not([type])') 

不知道如果這有助於在所有。

相關問題