Проверка имени пользователя в 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 в предыдущее значение, нет?
Основным способом заработать репутацию является размещение хороших вопросов и полезных ответов. Голосование за эти сообщения приводит к получению (а иногда и потере) репутации. Обратите внимание, что голоса за сообщения с пометкой "вики сообщества" не дают никакой репутации.