我有一个使用 HTML5“必需”验证的表单,我发现如果您尝试在 IE 中提交表单,输入会以红色突出显示并带有无效的伪类 - 没问题。
如果我随后完成表单并通过 AJAX 提交,然后在成功时发出 form.reset(),无效的伪类将重新应用于表单元素,以红色突出显示所有“必需”输入?
如何重置/清除整个表单,包括无效的伪类?
最佳答案
我发现这是跨浏览器的理想解决方案。
只需将 novalidate 属性添加到表单,重置表单,然后将其删除 - 简单!
$('#my_form').attr('novalidate','novalidate');
$('#my_form').get(0).reset();
$('#my_form').removeAttr('novalidate');
更新:好的,休斯顿,我们有问题....
它已经解决了 IE 中的问题,但现在它在 Firefox 中引起了问题!
在 Chrome 和 Opera 中运行良好。
当从表单中删除 novalidate 属性时,为什么 FF 运行验证检查?
不理想,但我想我可以一直使用...
if(/trident/i.test(navigator.userAgent))
{
$('#my_form').attr('novalidate','novalidate');
$('#my_form').get(0).reset();
$('#my_form').removeAttr('novalidate');
}
else
{
$('#my_form').get(0).reset();
}
欢迎任何其他建议。
关于javascript - HTML5 'required' 表单重置时留下无效的伪类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24040902/