Je suis encore un peu nouveau sur jQuery, donc il y a probablement une solution facile, mais je ne trouve rien. J'ai fait ce formulaire d'inscription, qui vérifie si le nom d'utilisateur ou l'email est pris que l'utilisateur tape le nom d'utilisateur. Fondamentalement, il fait juste une demande de JSON qui renvoie vrai ou faux selon si le nom d'utilisateur/email est déjà pris. Le problème, c'est que maintenant il fait une demande sur pratiquement chaque pression de touche que l'utilisateur effectue en se concentrant sur le champ si le texte d'entrée est plus de 3 caractères. Pour l'instant, cela fonctionne, mais c'est beaucoup de demandes de serveur. Je voudrais qu'il fasse une demande seulement quand l'utilisateur n'a pas tapé, par exemple, une demi-seconde.Jquery ajax live validation/timeout question
Des idées sur comment je pourrais être en mesure de faire cela?
$(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("");
}
});
}
});
});
Merci, c'est exactement ce que je cherchais. – gvidou
De rien! – CMS