我正在尝试使用html5验证和ajax。
checkValidity方法无法解决我的问题,因为它没有在UI中显示消息错误。
我需要使用js启动浏览器验证(并显示错误消息)。要做到这一点,我发现我必须提交表格并阻止该事件。即:
$('form#x').submit(function(e){
e.preventDefault();
// ajax code
});
这个工作正常,只有在所有表单文件都有效时才会执行ajax代码。但是,我意识到一旦表单有效,ajax代码执行的次数与单击提交按钮的次数相同。 WTF?
我可以使用全局标志解决该问题:
flah = 0;
$form.submit(function(e){
e.preventDefault();
if(flag) return;
flag = 1;
//send x ajax
// in ajax callback >> flag = 0
});
有没有其他方法可以在没有提交的情况下启动验证? 事件触发问题是浏览器错误还是我的代码中的问题?
由于
答案 0 :(得分:0)
试试这个:
$('form#x').submit(function(e){
e.preventDefault();
if(!this.checkValidity()){
return false;
}
// ajax code
});