【发布时间】:2019-11-26 22:54:07
【问题描述】:
我有一些从数据库动态生成的表单字段。有输入、复选框、单选按钮、文本区域和选择。所有字段都在 ID dynamic-form-fields 的父 div 中。某些字段具有required 属性。
这是一个多步骤表单,因此每个“步骤/页面”都需要在进行下一步之前进行验证。所以它没有提交表单。
如何检查 div dynamic-form-fields 中的所有必填字段是否已填写?
这是我的 HTML 代码的样子:
<input type="text" name="dff[]" placeholder="Name" required>
<input type="text" name="dff[]" placeholder="Date of Birth">
<input type="text" name="dff[]" placeholder="Email" required>
<input type="radio" name="gender" value="Male" required>
<input type="radio" name="gender" value="Female" required>
<select name="pet">
<option value="dog">Dog</option>
<option value="cat">Cat</option>
<option value="bird">Bird</option>
</select>
<button id="check">Check</button>
<script>
document.getElementById("check").onclick = function () {
if() {
alert('error please fill all fields!');
}
};
</script>
如您所见,有些字段是必需的,有些则不是。每次都不同,因此解决方案必须是动态的。还有不同类型的输入,例如选择、单选、复选框、文本等...如何确保 div ID dynamic-form-fields 中的每个“required”字段都已填写?
我的尝试:
也许是这样,但我如何在 div ID dynamic-form-fields 下获取每种类型的输入(文本、单选、复选框、选择等)?
$('#dynamic-form-fields input:required').each(function() {
if ($(this).val() === '')
alert('error please fill all fields!');
});
【问题讨论】:
-
您是在 div 中添加这些,还是用数据库中的 div 包装?
-
@CodeManiac 嗨,我看到了你的回答,我更新了问题。这是一个多步骤的表格,所以你以前的表格不起作用,因为我实际上并没有提交表格。这是 div
dynamic-form-fields内的foreach循环。 -
为什么不简单地
<form validate>? -
如果它是一个多步骤的表单,你实际上应该做的是只检查一个步骤的值而不是所有的值,并且在提交时你应该检查所有的值,
标签: javascript jquery html validation required