Javascript 循环遍历所有表单字段
我有下面的代码,我可以循环遍历所有表单字段,但值仅为第一个字段保存,因此控制台仅显示第一个表单字段值的7次迭代。另一方面,我希望它对所有表单字段逐一进行,以便我可以验证它们。提前谢谢Javascript 循环遍历所有表单字段,javascript,jquery,forms,Javascript,Jquery,Forms,我有下面的代码,我可以循环遍历所有表单字段,但值仅为第一个字段保存,因此控制台仅显示第一个表单字段值的7次迭代。另一方面,我希望它对所有表单字段逐一进行,以便我可以验证它们。提前谢谢 $('formsection[name="AUDIT REPORT"]').find('input,select').each(function() { hi = []; hi = $('formsection[name="AUDIT REPORT"]').find('input,select').val(
$('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()
:
使用
$(this).val()
。是否在此处键入<代码>表单部分?使用:输入选择器。我不认为这是一个打字错误,但非常感谢老兄,它成功了。:)我们也有类似的想法:)谢谢你@Rory McCrossan。一个解释得很好的答案总是有帮助的。@SHIKHARSINGH没问题,很乐意帮忙
$('form section[name="AUDIT REPORT"] :input').each(function() {
var hi = $(this).val();
console.log(hi);
});