循环遍历所有表单域

时间:2017-04-21 07:48:36

标签: javascript jquery forms

我有以下代码,我可以循环遍历所有表单字段,但是只为第一个表单保存值,因此控制台仅显示第一个表单字段值的7次迭代。另一个我想让它一个接一个地出现在所有表单字段中,以便我可以验证它们。提前谢谢。

$('formsection[name="AUDIT REPORT"]').find('input,select').each(function() {
  hi = [];
  hi = $('formsection[name="AUDIT REPORT"]').find('input,select').val();
  console.log(hi);

});

1 个答案:

答案 0 :(得分:2)

首先请注意,选择器中formsection之间应该有一个空格,因为formsection不是有效的HTML元素。

问题本身是由于在each()处理函数中使用了相同的选择器。由于生成的jQuery对象包含Elements的集合,因此调用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);
});