Я все еще новичок в jQuery, так что, возможно, есть простое решение, но я ничего не могу найти.
Я сделал эту регистрационную форму, которая проверяет, будет ли введено имя пользователя или адрес электронной почты, когда пользователь вводит имя пользователя. По сути, он просто делает запрос json, который возвращает истину или ложь в зависимости от того, занято ли имя пользователя или адрес электронной почты.
Проблема в том, что теперь он делает запрос практически на каждое нажатие клавиши, которое пользователь нажимает, сфокусировавшись на поле, если длина входного текста превышает 3 символа. Пока это работает, но это много запросов к серверу. Я бы хотел, чтобы он делал запрос только тогда, когда пользователь не набрал, скажем, полсекунды.
Есть идеи, как мне это сделать?
$(document).ready(function() {
$("#user_username").keyup(function () {
var ln = $(this).val().length;
if (ln > 3) {
$.getJSON("/validate/username/",
{value:$(this).val()},
function(data){
if (data.reg == true) {
$("#status-for-username").html("Username already in use");
} else {
$("#status-for-username").html("Username available");
}
});
}
});
$("#user_email").keyup(function () {
var ln = $(this).val().length;
if (ln > 3) {
$.getJSON("/validate/email/",
{value:$(this).val()},
function(data){
if (data.reg == true) {
$("#status-for-email").html("E-mail already in use");
} else {
$("#status-for-email").html("");
}
});
}
});
});