我正在使用ajax调用发送表单。当用户使用表单中的“提交”按钮时,这将调用函数sendForm()
。该函数阻止默认设置(提交表单),并验证表单(对于带有required
的字段),如果表单有效,则进行ajax调用。
问题是表单包含一些隐藏的(display:none
)元素,这些元素已通过resportValidity()
调用进行了验证,因此该表单由于存在隐藏元素而失败,因此不应对其进行验证(它们根据先前的用户选项显示。)
在使用的sendForm()
函数下面:
function sendForm(e) {
$(e).preventDefault;
var form = document.getElementById('myForm');
if (form.reportValidity()) {
// form is valid, do ajax call..
}else{
alert("Form not valid");
}
}
因此,当form.reportValidity()
这样做时,由于required
样式的输入中的输入字段为“空”,我得到了错误。
如何仅在没有display:none
的情况下对表单元素进行reportValidity()?
谢谢!