2017-05-31 50 views
1

我试图调用一个函数来保存我的表单。jQuery验证:在表单验证后调用函数

这里是我的代码:

$('#save-form-datas').validate({ 
    rules: { 
     ROO_Number: { 
      required: true, 
      minlength: 1, 
      maxlength: 4 
     } 
    }, 
    submitHandler: function(form) { 
     var formData = new FormData(form); 
     saveFormDatas(form); 
    } 
}); 

但在执行代码时它不工作。

这是我想的已经验证后执行权函数的代码:

function saveFormDatas(form) { 

    $.ajax({ 
     type : 'POST', 
     data : form.serialize(), 
     url : 'assets/app/php/ajax/rooms_edit.php', 
     success: function(responseText){ 
      var json = $.parseJSON(responseText); 
      if(json.type=="success") { 
       $('#status-message-saved.hide').removeClass('hide'); 

       if(json.return_url!="") { 
        setTimeout(function(){ window.location.href = "app?q=" + json.return_url; }, 1000); 
       } 
      } 
      if(json.type=="error") { 
       $('#status-message-error.hide').removeClass('hide'); 
      } 
     } 
    }); 
} 

但它不工作,只需打开一个新的网页这样我通过与形式$_GET(我的所有表单数据都在url中)。

我需要这样做,因为我有超过100个窗体,并且不能复制我的代码来保存窗体。

感谢您的帮助。

回答

0

只需从验证程序中删除submitHandler并添加一个外部函数。

$('#save-form-datas').validate({ 
rules: { 
    ROO_Number: { 
     required: true, 
     minlength: 1, 
     maxlength: 4 
    } 
} 
}); 

处理表单提交如下。

$('#save-form-datas').submit(function(event){ 
    event.preventDefault(); 
    if($('#save-form-datas').valid()){ 
     var form = $('#save-form-datas')[0]; 
     var formData = new FormData(form); 
     saveFormDatas(form); 
    } 
}); 

否则你可以添加如下“返回false” ......(这将防止默认提交表单)

$('#save-form-datas').validate({ 
rules: { 
    ROO_Number: { 
     required: true, 
     minlength: 1, 
     maxlength: 4 
    } 
}, 
submitHandler: function(form) { 
    var formData = new FormData(form); 
    saveFormDatas(form); 
    return false; 
} 
}); 
0

我曾在我的代码以完成这件事

$('#save-form-datas').validate({ 
    rules: { 
     ROO_Number: { 
      required: true, 
      minlength: 1, 
      maxlength: 4 
     } 
    } 
}); 

在这里你可以检查的形式有效或无效

if($('#save-form-datas').valid()){ 
     function myfunction() 
} 

myfunction { 

$.ajax({ 
     type : 'POST', 
     data : $('#save-form-datas').serialize(), 
     url : 'assets/app/php/ajax/rooms_edit.php', 
     success: function(responseText){ 
      var json = $.parseJSON(responseText); 
      if(json.type=="success") { 
       $('#status-message-saved.hide').removeClass('hide'); 

       if(json.return_url!="") { 
        setTimeout(function(){ window.location.href = "app?q=" + json.return_url; }, 1000); 
       } 
      } 
      if(json.type=="error") { 
       $('#status-message-error.hide').removeClass('hide'); 
      } 
     } 
    }); 
} 

希望这有助于。