Я хочу проверить свою форму, не нажимая кнопку отправки в laravel. У меня есть некоторые коды здесь, но работает только email format is invalid
. Может кто-нибудь сказать мне, что мне делать? Я просто новичок в ajax
PS: сообщение, которое я получаю при вводе действительного адреса электронной почты {readyState: 4, getResponseHeader: ƒ, getAllResponseHeaders: ƒ, setRequestHeader: ƒ, overrideMimeType: ƒ, …}
Blade
<input type="email" class="form-control" id="inputEmail" name="inputEmail" placeholder="Email" required value="{{ old('inputEmail') }}">
Ajax
$(document).ready(function () {
const emailValidation = document.querySelector('#inputEmail');
const mailformat = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
emailValidation.addEventListener('blur', e => {
if (emailValidation.value.match(mailformat)) {
$.ajax({
type: 'get',
url: '/emailValidation',
_token: "{{ csrf_token() }}",
data: {
'emailValidation': emailValidation.value,
},
success: function (data) {
if (data.validOrNot === "not taken"){
console.log("it works!");
} else {
console.log("email taken!");
}
},
error: function (error) {
console.log(error);
}
});
} else {
console.log("Email format is invalid!");
}
});
});
Контроллер
public function emailValidation(Request $request){
// $user = new User;
$user = User::where('email', '=', Input::get('inputEmail'))->first();
$emailPassed = $request->emailValidation;
if ($user===null)
return response()->json(['validOrNot' => 1]);
else
return response()->json(['validOrNot' => 0]);
}
Маршрут
Route::get('/emailValidation', 'TeachersController@emailValidation');