Je veux envoyer des séquences de touches tapées dans un champ de texte, mais seulement dans un intervalle de 1s.envoyer des frappes avec ajax après 1s?
est de réduire la charge d'envoi d'une requête ajax à chaque pression de touche.
ainsi par exemple. Si l'utilisateur tape 4 lettres en une seconde, la requête enverra toutes ces 4 lettres. et disons qu'il tape non-stop en 1 min, alors le script enverra à intervalle de 1s jusqu'à ce qu'il arrête de taper.
au moment de mon script ressemble à ceci:
$("#type_post").live('keyup', function() {
$.post('posts.php', {post: $("#type_post").val()});
});
mais qui envoie sur tout keypress.
quelqu'un pourrait me aider
MISE À JOUR: voici le code i utilisé.
var last_post = '';
$('#type_post').focus(function() {
// check if text has been changed every second when input field is focused
setInterval(function() {
if($('#type_post').val() != last_post)
{
// if changed, post it and set the new text as last text
$.post('posts.php', {post: $("#type_post").val()});
last_post = $("#type_post").val();
}
}, 1000);
});
mais que le son ne marche pas comme une solution ultime, il doit y avoir un autre moyen d'activer ce juste à chaque touche – ajsie
noname: jspcal a la solution pour vous.Vous pouvez aussi l'activer sur keypress, mais vous devez savoir quand * arrêter * le timer (dans mon exemple), dans l'approche de jspcal, vous devez simplement comparer les temps et faire la mise à jour. Probablement, sa solution est meilleure –
n'utilisez pas non plus la méthode de reliure en direct. Utilisez .bind ('keyup', ...) à la place, à moins que vous ne créiez de nouvelles boîtes de champ avec cette fonctionnalité dynamiquement .. –