我使用Laravel JsValidation
,JsValidation
正常使用其他表单,但由于我应该使用Ajax提交表单,因此JsValidation无法正常运行,并且表单已提交。
$validator = JsValidation::make($rules);
并在视野中
{!!$validator!!}
答案 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;
});