我有以下代码,我可以在其中循环遍历我的所有表单字段,但只为第一个表单字段保存值,因此控制台仅显示第一个表单字段值的 7 次迭代。在另一个hand 我希望所有表单字段都一一出现,以便我可以验证它们。提前致谢。
$('formsection[name="AUDIT REPORT"]').find('input,select').each(function() {
hi = [];
hi = $('formsection[name="AUDIT REPORT"]').find('input,select').val();
console.log(hi);
});
最佳答案
首先请注意,选择器中的 form
和 section
之间应该有一个空格,因为 formsection
不是有效的 HTML 元素。
问题本身是由于在 each()
处理函数中使用了相同的选择器。由于生成的 jQuery 对象包含元素集合,因此调用 val()
将仅从集合的第一个元素读取。它不会像您预期的那样返回数组。
要解决此问题,请使用 this
关键字来引用迭代中的当前元素:
$('form section[name="AUDIT REPORT"]').find('input,select').each(function() {
var hi = $(this).val();
console.log(hi);
});
另请注意,:input
选择器也可以在不使用 find()
的情况下满足您的需求:
$('form section[name="AUDIT REPORT"] :input').each(function() {
var hi = $(this).val();
console.log(hi);
});
关于javascript - 遍历所有表单字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43536890/