无需提交即可启动浏览器的验证和错误消息

时间:2012-03-29 13:48:42

标签: javascript html5 validation

我正在尝试使用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 

});

有没有其他方法可以在没有提交的情况下启动验证? 事件触发问题是浏览器错误还是我的代码中的问题?

由于

1 个答案:

答案 0 :(得分:0)

试试这个:

$('form#x').submit(function(e){
   e.preventDefault();

    if(!this.checkValidity()){
       return false;
    }   

   // ajax code
 });