Почему следующий код отображает 'null' вместо значения в моей форме ajax? [Дубликат]

-1

Я пытаюсь показать сообщение об ошибке в разделе нижнего колонтитула моей формы ajax, но я получаю "null" вместо значения, что не так?

Изображение 174551

вот мой код:

html:

<div class="modal-footer">
    <div id="error_message"></div>
    <button type="submit" class="btn btn-default" id="submit" disabled>Submit</button>
    <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div role="modal-footer">

view.py:

from django.shortcuts import render
from librarysystem.models import Users
from django.http import JsonResponse

def index(request):
    template = 'librarysystem/Elib.html'
    return render(request,template)

    def validateForm(request):
        tagId = request.GET.get('id',None)           
        data = {
                'isTaken' : tagId,
                'value': request.GET.get(tagId,None),
               }
        return JsonResponse(data)

Код ajax:

function validateForm() {
    tagId = this.id;
    $.ajax({
         url: "/librarysystem/validate/",
         data: {
                 tagId: this.value,
                 'id': tagId,
         },
         dataType: 'json',
         success: function(data){
            $('#error_message').html(data.value + ' = value').css('color','red');
         }
    }) ;
}

$(document).ready(function() {                                         
    $("#username, #emailid, #password, #retrypassword").keyup(validateForm);
});
  • 0
    Массивы Python такие же, как JavaScript?
  • 0
    data: { tagId: this.value, 'id': tagId, }, это не смущает? хотя this не то, что вы думаете здесь.
Теги:

2 ответа

0

this неверно:

function validateForm() {
        tagId = this.id;
    var val = this.value; // <-----get value here
    $.ajax({
         url: "/librarysystem/validate/",
         data: {
                 tagId: val, //<----pass it here
                 'id': tagId
         },
         dataType: 'json',
         success: function(data){
            $('#error_message').html(data.value + ' = value').css('color','red');
         }
    });
}

или использовать context:this, параметр в ajax:

function validateForm() {
        tagId = this.id;

    $.ajax({
         url: "/librarysystem/validate/",
         context:this, //<----add it here
         data: {
                 tagId: this.value, 
                 'id': tagId
         },
         dataType: 'json',
         success: function(data){
            $('#error_message').html(data.value + ' = value').css('color','red');
         }
    });
}
  • 0
    все еще не работает :(
0

Это кажется логически неверным.

tagId = request.GET.get('id',None)   ## Which returns username based on the request

Вторая линия

data = {
       'isTaken' : tagId,
       'value': request.GET.get(tagId,None) ## request params doesn't have any key as "**username**" and is supposed to return null. 
}
  • 0
    request.GET.get (tagId, None) будет расширен до request.GET.get ('username', None), который получит значение, возвращаемое this.value в ajax ???

Ещё вопросы

Сообщество Overcoder
Наверх
Меню