Jquery 使用AJAX提交表单后如何重置验证?
我有一个用html5验证的表单,然后用AJAX提交,然后重置输入字段,它就可以工作了 我的问题是,在有效提交后,消息被发送,输入被清除,但html5验证仍然将我的空字段概括为不正确的字段 HTML:Jquery 使用AJAX提交表单后如何重置验证?,jquery,ajax,html,forms,Jquery,Ajax,Html,Forms,我有一个用html5验证的表单,然后用AJAX提交,然后重置输入字段,它就可以工作了 我的问题是,在有效提交后,消息被发送,输入被清除,但html5验证仍然将我的空字段概括为不正确的字段 HTML: 您需要停止默认的提交行为 $('#submit-btn').click(function(e){ e.preventDefault(); // ... } 或者您可以使用type=“button”而不是type=“submit”我强烈建议您使用submit事件 如果您使用的
您需要停止默认的提交行为
$('#submit-btn').click(function(e){
e.preventDefault();
// ...
}
或者您可以使用
type=“button”
而不是type=“submit”
我强烈建议您使用submit事件
如果您使用的是新的HTML5验证(例如必需的),那么.reset()应该可以工作
它对我有用
如果没有,请尝试聚焦并模糊每个字段,以告诉验证器字段是否正常
看
如果您使用,您需要执行一个,这就是返回false所做的,它完全禁用了html5验证。威尔做了这个,但不幸的是没有起作用。成功提交表单并清除字段后,表单字段仍以红色勾勒。感谢您的好意和重建我的问题。我的站点的工作方式与您的演示JSFIDLE完全相同,在提交消息后,字段显示为错误字段。顺便说一下,如果这太复杂了,我可以考虑使用验证插件:
$('#submit-btn').click(function(){
if($("#cform")[0].checkValidity()) {
$.post("mailer.php", $("#cform").serialize(), function(response) {
$('#success').html(response);
$("#cform")[0].reset();
});
return false;
} else console.log("invalid form");
});
$('#submit-btn').click(function(e){
e.preventDefault();
// ...
}
$(function() {
$('#cform').on("submit",function(e){
e.preventDefault();
if($("#cform")[0].checkValidity()) {
$.post("/echo/json/", $("#cform").serialize(),function(response) {
$('#success').html(response);
$("#cform")[0].reset();
});
}
else window.console && console.log("invalid form");
});
});