【问题标题】:jQuery: Get all text inputs where no type is definedjQuery:获取未定义类型的所有文本输入
【发布时间】:2012-10-13 05:01:54
【问题描述】:

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

例如在:

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

text1 不包括在内。

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

【问题讨论】:

  • 从技术上讲,输入只是文本输入,如果你说 type="text"
  • 我明白了,但是当我们不设置任何类型时,它将默认显示为“文本”
  • 是的,它似乎可以验证,只要您的名称属性具有“文本”,您就可以使用有关名称的答案,或者您可以始终做到这一点,说匹配除收音机以外的所有输入,提交,复选框和其他任何东西

标签: jquery jquery-selectors


【解决方案1】:

选择type=text的,没有type属性的。

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

【讨论】:

    【解决方案2】:
    $('input:text')
    

    From the official documentation:

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

    【讨论】:

    • :text 选择器已弃用。
    【解决方案3】:

    您可以使用filter 方法:

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

    http://jsfiddle.net/hgzmQ/

    【讨论】:

      【解决方案4】:

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

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

      【讨论】:

        【解决方案5】:

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

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

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

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

        不确定这是否有帮助。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-12-11
          • 1970-01-01
          • 2017-10-06
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多