ajax в django функция успеха не работает - PullRequest
0 голосов
/ 29 апреля 2020

Я новичок в ajax, а также Django. Я пытаюсь ввести ajax в своем коде, чтобы проверить, что на странице регистрации, если у какого-либо пользователя уже есть один адрес электронной почты, этот адрес не может использоваться для новых пользователей, и отключить кнопку еще раз, если адрес электронной почты не существует, тогда пользователь может быть создан.

ajaxCode


$(document).on('blur', 'input[name="email"]', function(){
   $.ajax({
    type:'POST',
    url:'/stock/checkemail/',
    data:{
        email:$("#email").val(),
        csrfmiddlewaretoken:$('input[name=csrfmiddlewaretoken]').val()
    },
    success:function(){
        $('input[type="submit"]').attr('disabled', 'true')
    },
    failure:function(){
        $('input[type="submit"]').removeAttr('disabled');
    }
   })
});

url.py

    path('checkemail/',Emailser.as_view()),

views.py

class Emailser(View):
    def post(self, request):
        em = request.POST['email']
        print(em)
        try:
            user = User.objects.get(email=em)
            return HttpResponse('true')
        except:
            return HttpResponse('false')

В views.py print(em) также печатает почту этого типа в поле, но не знает, почему не работает. шаблон

{% extends 'base.html' %}
{% block content %}
{% load static %}
<div>
  <h2>Sign Up</h2>
  {% if error %}
{{error}}
<br/>
{% endif %}
  <form method="post" id="signup" >
    {% csrf_token %}
    {{ form.as_p }}
    <button type="submit" class="btn btn-primary" >Signup</button>
  </form>
</div>
     <script src="{% static 'assets/signup.js' %}" ></script>
{% endblock %}

Ответы [ 2 ]

0 голосов
/ 29 апреля 2020
$(document).on('blur', 'input[name="email"]', function(){
   $.ajax({
    type:'POST',
    url:'/stock/checkemail/',
    data:{
        email:$("#email").val(),
        csrfmiddlewaretoken:$('input[name=csrfmiddlewaretoken]').val()
    },
    success:function(response){
        response ? $('input[type="submit"]').attr('disabled', 'true') :  $('input[type="submit"]').removeAttr('disabled');

    },
    failure:function(error){
     console.log(error);
    }
   })
});
0 голосов
/ 29 апреля 2020

попробуйте это внутри функции succcess

$('input[type="submit"]').disabled = true;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...