Laravel JsValidation无法使用Ajax提交的表单

时间:2016-04-03 10:03:59

标签: php laravel jsvalidation

我使用Laravel JsValidationJsValidation正常使用其他表单,但由于我应该使用Ajax提交表单,因此JsValidation无法正常运行,并且表单已提交。

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

并在视野中

{!!$validator!!}

2 个答案:

答案 0 :(得分:0)

由于验证调用是异步的,因此通过执行以下操作将其标记为同步:

async: false

[可选]并防止表单提交默认功能,执行:

e.preventDefault();

点击提交按钮。在进行验证后,您将根据该响应获得响应,您可以允许表单提交或不提交。

  

Simple Code Snippet:

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

看,如果有帮助。

答案 1 :(得分:0)

尝试使用此代码段:

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