Laravel JsValidation не работает с отправленной формой Ajax

я использую Laravel JsValidation, JsValidation работает правильно с другими формами, но поскольку я должен отправить форму с помощью Ajax, JsValidation не работает должным образом, и форма отправлена.

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

и ввиду

{!!$validator!!}

1

Решение

Поскольку вызов проверки является асинхронным, пометьте его как синхронный, выполнив:

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;
});
0

По вопросам рекламы [email protected]