1DM*_*DMF 6 javascript forms jquery html5
我有一个使用HTML5'必需'验证的表单,我发现如果你尝试在IE中提交表单,输入会以无效的伪类突出显示为红色 - 很好.
如果我然后填写表单并通过AJAX提交,则成功时发出form.reset(),无效的伪类重新应用于表单元素,突出显示红色的所有"必需"输入?
如何重置/清除表单,包括无效的伪类?
我发现这是跨浏览器工作的理想解决方案。
只需将 novalidate 属性添加到表单,重置表单,然后将其删除 - 很简单!
$('#my_form').attr('novalidate','novalidate');
$('#my_form').get(0).reset();
$('#my_form').removeAttr('novalidate');
Run Code Online (Sandbox Code Playgroud)
更新:好吧,休斯顿,我们有一个问题......
它已经解决了 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();
}
Run Code Online (Sandbox Code Playgroud)
欢迎任何其他建议。