2016-04-03 54 views
1

我使用Laravel JsValidation,JsValidation與其他表單正常工作,但是因爲我應該使用Ajax提交表單,JsValidation工作不正常,並且表單提交。Laravel JsValidation不能使用Ajax提交表格

$validator = JsValidation::make($rules); 

並鑑於

{!!$validator!!} 
+0

這是您使用https://github.com/proengsoft/laravel-jsvalidation圖書館嗎? –

+0

@ LancePioch是啊 – jones

+0

'JsValidation工作不正常'太含糊了,你能否詳細說明你的問題。 –

回答

0

由於驗證呼叫是異步的,標記,作爲同步通過執行:

async: false 

[可選],並防止形式提交默認功能,執行:

e.preventDefault(); 

上提交按鈕點擊。驗證完成後,您將根據該響應獲得響應,您可以允許表單提交或不提交。

簡單的代碼片段:

$("#form-submit").on('submit', function(){ 
     var errorMsg = 'Please provide your correct information.'; 
     $(".errorMsg ").text(""); 
     var txtName = $("input#txtName").val(); 

     var responseStatus = false; 
     var userData = { 
      'name' : txtName 
     }; 

     $.ajax({ 
      type: 'POST', 
      url: '/validate-data', 
      async: false, 
      data: userData, 
      success: function(result){ 
       if(result.status === true){ 
        responseStatus = true; 
       } else { 
        responseStatus = false; 
        errorMsg = result.message; 
        $(".errorMsg ").text(errorMsg); 
        return false; 
       } 
      }, 
      error: function (xhr, ajaxOptions, thrownError) { 
        alert('Oops! Something went wrong. Please try again.');      return false; 
      } 
     }); 

    if(responseStatus === false){ 
      return false; 
    } else { 
      return true; 
    } 
}); 

看,如果沒有什麼幫助。

0

嘗試使用這個片段:

$('form').on('submit', function() { 
    if($(this).valid()) { 
    // do your ajax stuff here 
    } 
    return false; 
});