#php #laravel
Вопрос:
Мой проект основан на laravel 8 и php 7.4.
У меня есть форма регистрации, основанная на Ajax. Я прошу пользователя ввести пароль, а затем подтвердить пароль. Я обрабатываю проверку в ответе json. Все мои поля проверены правильно и работают, но я не знаю, как мне проверить поле подтверждения пароля, чтобы оно соответствовало паролю.
Лезвие
<form id="register_forms">
<div>
<label for="register_password"></label>
<input placeholder="password" id="register_password" type="password" class="input form-control @error('register_password') is-invalid @enderror" name="register_password" required autocomplete="register_password">
<span class="message" id="register_password" style="color: #ff0000; display:none;" role="alert"><strong>{{ __('The password field is required.')}}</strong></span>
</div>
<div>
<label for="register_password_confirmation"></label>
<input placeholder="confirm Password" type="password" class="input form-control" name="register_password_confirmation" required autocomplete="new-password">
</div>
<input id="my-register" type="submit" value="Continue">
</form>
язык JavaScript
<script>
$("#my-register").click(function(e){
e.preventDefault();
var _token = $('input[name="_token"]').val();
var data = $('#register_forms').serialize()
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="_token"]').attr('content')
}
});
$.ajax({
type: "post",
beforeSend: function(){
$('.ajax-loader').css("visibility", "visible");
},
url: "{{ route('register') }}",
data: $('#register_forms').serialize(),
//data : $('#register_forms').serialize() "amp;_token=" _token,
dataType: 'json',
success: function(data) {
window.location = "https://carchainclassics.com/login";
},
complete: function(){
$('.ajax-loader').css("visibility", "hidden");
},
error: function (err) {
$('.message').hide();
if (err.status == 422) {
$('#success_message').fadeIn().html(err.responseJSON.message);
// display errors on each form field
$.each(err.responseJSON.errors, function (i, error) {
grecaptcha.reset();
var el = $(document).find('span[id="' i '"]');
el.show();
});
}
}
});
/**Ajax code ends**/
});
</script>
Контроллер
protected function validator(array $data)
{
'register_password' => ['required','string', 'min:8','confirmed'],
]);
$validator->setAttributeNames([
'register_password' => 'password',
]);
return $validator;
}
Ответ №1:
@шаан, ты можешь попробовать это
$this->validate($request, [
'name' => 'required|min:3|max:50',
'email' => 'email',
'vat_number' => 'max:13',
'password' => 'min:6|required_with:password_confirmation|same:password_confirmation',
'password_confirmation' => 'min:6'
]);
Комментарии:
1. Я думаю, вы неправильно истолковали мой вопрос. Пожалуйста, прочтите это один раз и посмотрите, как я обрабатываю проверку в ответе Ajax.