0

当我使用时$("input[type=text]"),我绝对指的是所有文本框,但它只返回为它们设置的类型的输入。

例如在:

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

text1不包括在内。

无论是否设置了类型,如何获取所有文本输入?

4

5 回答 5

5

选择具有 type=text 的那些,以及没有 type 属性的那些。

$("input[type=text],input:not([type])")
于 2012-10-12T20:55:17.613 回答
4
$('input:text')

来自官方文档:

从 jQuery 1.5.2 开始, :text 选择没有指定 type 属性的输入元素(在这种情况下 type="text" 是隐含的)。

于 2012-10-12T20:56:40.163 回答
2

您可以使用以下filter方法:

$("input").filter(function(){
    return this.type === 'text'
})​

http://jsfiddle.net/hgzmQ/

于 2012-10-12T20:56:02.443 回答
0

如果您输入的所有名称都包含“文本”(否则您将如何理解它是一个文本框?),您可以尝试。

$('input[name*="text"]');
于 2012-10-12T20:54:26.313 回答
0

如果你不设置类型,那么 [type="text"] 将排除那些没有类型的。

如果您选择 $('input') 您将获得每个输入,无论类型如何,因此它可能是文本字段,也可能不是。但它仍然适用于每个输入字段。

如果不设置类型,它不会显示为 type=text,但会呈现为这样。这意味着您不能选择 JUST [type="text"],但您始终可以排除其他人,但如下所示:

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

不确定这是否有帮助。

于 2012-10-12T21:01:54.850 回答