Я написал программу, которая выводит Ajax только один раз [закрыто]
Не уставайте Я написал программу для регистрации пользователя, например, пользователь пришел и ошибся в обоих паролях, покажите ошибку с помощью Ajax, конечно, это произойдет только один раз, и если пароль будет неправильным снова, ошибка не будет отображаться, что означает, что он будет использоваться только один раз. Бесконечное использование в Ajax, конечно, страница не загружается.
HTML-код
<form class="mt-4" method="post" id="my_form">
{% csrf_token %}
<!-- Email -->
<div class="mb-3">
{{ register_forms.email.label_tag }}
{{ register_forms.email }}
</div>
<!-- Password -->
<div class="mb-3">
{{ register_forms.password.label_tag }}
{{ register_forms.password }}
</div>
<!-- Password -->
<div class="mb-3">
{{ register_forms.confirm_password.label_tag }}
{{ register_forms.confirm_password }}
</div>
<!-- Checkbox -->
<div class="mb-3 form-check">
<input type="checkbox" class="form-check-input" id="exampleCheck1">
<label class="form-check-label" for="exampleCheck1">من می خواهم برای عضویت در
خبرنامه نیز ثبت نام کنم</label>
</div>
<!-- Button -->
<div class="row align-items-center">
<div class="col-sm-6">
<button type="submit" class="btn btn-success mb-2" id="LoadButton"><i
class="fa fa-spinner fa-spin spinner" id="spinner"></i><span
class="text">ثبت نام</span></button>
</div>
<div class="col-sm-8 text-sm-end">
<span>آیا قبلا ثبت نام کرده اید؟ <a href="signin.html"><u>ورود</u></a></span>
</div>
</div>
</form>
Django Code
class RegisterView(View):
def get(self, request: HttpRequest):
register_form = RegistrationForm()
context = {'register_forms': register_form}
return render(request, 'account_module/register_page.html', context)
def post(self, request: HttpRequest):
register_form = RegistrationForm(request.POST)
if register_form.is_valid():
email = register_form.cleaned_data.get('email')
password = register_form.cleaned_data.get('password')
confirm_password = register_form.cleaned_data.get('confirm_password')
if password == confirm_password:
user: bool = User.objects.filter(email__iexact=email).exists()
if user:
return JsonResponse({'error': True, 'error_message': 'ایمیل وارد شده تکراری می باشد'}, status=400)
else:
return JsonResponse({'error': True, 'error_message': 'کلمه عبور و تکرار کلمه عبور باهم مغایرت دارند'},
status=400)
context = {'register_forms': register_form}
return render(request, 'account_module/register_page.html', context)
Ajax
$(function () {
$("#my_form").on('submit', function (event) {
event.preventDefault();
// Ajax Code
$.ajax({
url: '{% url "account_module:register_page" %}',
type: 'POST',
data: $(this).serialize(),
dataType: 'json',
success: function (response) {
if (response.success) {
} else {
}
},
error: function (xhr, status, error) {
if (xhr.status === 400) {
// show animation success and message
let responseObject = JSON.parse(xhr.responseText)
$(".back_err").show();
$(".success-animation-error").show();
$(".text_header_error").text("عملیات ناموفق")
$(".texts_err").text(responseObject.error_message)
}
}
})
})
})