2017-05-31 11 views
1

フォームを保存する関数を呼び出そうとしています。jQuery validate:フォーム検証後に関数を呼び出す

$('#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'); 
      } 
     } 
    }); 
} 

希望はこれが助けます。

関連する問題