我正在使用Laravel JsValidation,JsValidation与其他表单工作正常,但因为我应该用Ajax提交表单,JsValidation不能正常工作,表单提交。
$validator = JsValidation::make($rules);在视图中
{!!$validator!!}发布于 2016-04-05 14:23:55
由于验证调用是异步的,因此通过执行以下操作将其标记为同步:
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;
}
});看看这有没有帮助。
发布于 2017-05-04 18:04:19
尝试使用以下代码片段:
$('form').on('submit', function() {
if($(this).valid()) {
// do your ajax stuff here
}
return false;
});https://stackoverflow.com/questions/36384048
复制相似问题