在 Javascript 中循环遍历表单中的可见输入元素?

Loop through visible input elements in a form in Javascript?

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

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

目前我有:

// 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('');
    }
}

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

关于如何使 text/password/textbox 输入类型工作的任何想法?

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

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

文本框输入的标签名称为 "textarea"。不确定为什么其他文本类型不起作用。你试过了吗:

childs[i].values = '';

?