Проверка имени пользователя в django с помощью jquery и javascript

Это правильный способ проверки? Я использую javascript здесь имя пользователя из модели User в django я настроил urls.py для validate_username

  function delay(callback, ms) {
    var timer = 0;
    return function() {
      var context = this, args = arguments;
      clearTimeout(timer);
      timer = setTimeout(function () {
        callback.apply(context, args);
      }, ms || 0);
    };
  }

    $('#id_username').on('focus', function(){
        if ( $(this).val() == '' ){
            $(this).attr('oldValue','');
        }
        else {

            $(this).attr('oldValue',$(this).val());
        }
    });

  $('#id_username').keyup(delay(function () {
    var currValue = $(this).val();
    var oldValue = $(this).attr('oldValue');
    if (currValue == oldValue){
        // Not sending ...
    }
    else{
        
    
        // create an AJAX call
        $.ajax({
            data: $(this).serialize(), // get the form data
            url: "{% url 'validate_username' %}",
            // on success
            success: function (response) {
                if (response.is_taken == true) {
                    $('#id_username').removeClass('is-valid').addClass('is-invalid');
                    $('#usernameError').remove();
                    $('#id_username').after('<div class="invalid-feedback d-block" id="usernameError">This username is not available!</div>')
                }
                else {
                    if ( $('#id_username').val().length >= 4 ) {

                        $('#id_username').removeClass('is-invalid').addClass('is-valid');
                        $('#usernameError').remove();
                        $('#id_username').after('<div class="valid-feedback d-block" id="usernameError">This username is available!</div>')
                    }
                    else if ( $('#id_username').val().length <= 4 ) {
                        $('#usernameError').remove();
                        $('#id_username').after('<div class="valid-feedback d-block" id="usernameError">Enter valid username character <br /> should be more than 4 letters !</div>')
                    }


                }

            },
            // on error
            error: function (response) {
                // alert the error if any error occured
                console.log(response.responseJSON.errors)
            }
        });

    }

    return false;
}, 1000));

На данный момент свойство не определено для select.change(). Обновление библиотеки может установить prevValue в предыдущее значение, нет?

Основным способом заработать репутацию является размещение хороших вопросов и полезных ответов. Голосование за эти сообщения приводит к получению (а иногда и потере) репутации. Обратите внимание, что голоса за сообщения с пометкой "вики сообщества" не дают никакой репутации.

Вернуться на верх