【问题标题】:Loop through visible input elements in a form in Javascript?循环遍历Javascript表单中的可见输入元素?
【发布时间】:2015-01-02 02:31:31
【问题描述】:

所以我试图遍历表单中的所有可见输入,并将它们的值设置为空。

这是可重用的代码,所以我不能只使用标签名来获取表单实例。

目前我有:

// Clear the form.
var currentForm = $(this).closest("form");
var childs = currentForm.children();
for (var i = 1; i < childs.length - 1; i++) {
    if (childs[i].tagName == "INPUT") {
        childs[i].val('');
    }
}

我的行为非常奇怪。它似乎适用于隐藏类型的输入,但不适用于其他任何东西。对于文本类型输入,它只返回 undefined。

任何想法如何使它适用于文本/密码/文本框输入类型?

【问题讨论】:

  • $(this) 指的是什么?您能否发布您的 HTML,以便我们查看结构

标签: javascript jquery html children


【解决方案1】:

jQuery 有一个:visible 选择器和一个:input 选择器。此外,大多数 jQuery 方法都对整个集合进行操作。 val() 可以直接使用而不是循环遍历集合。

currentForm.find(':input:visible').val('');

【讨论】:

    【解决方案2】:

    文本框输入的 tagName 为“textarea”。不知道为什么其他文本类型不起作用。你试过了吗:

    childs[i].values = '';

    ?

    【讨论】:

      猜你喜欢
      • 2015-05-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-27
      • 2018-04-16
      • 2010-12-16
      • 2018-07-11
      • 2017-02-11
      相关资源
      最近更新 更多