7
votes

Y a-t-il une alternative en temps réel jQuery .change en temps réel?

Je veux que quelque chose se passe juste après que la modification ait été faite dans le champ de saisie, et non après que cette entrée a été coutuée. Y a-t-il une alternative?

démo ici

Mise à jour Il devrait également fonctionner pour les types où l'utilisateur ne doit pas nécessairement cliquer sur le bouton du clavier (comme type d'entrée HTML5 = numéro / date)


2 commentaires

Dupliquer possible: Stackoverflow.com/Questtions/4060782/...


Lire vos réponses me fait me sentir comme il n'y a pas d'alternative de travail à 100%


5 Réponses :


-1
votes

quelque chose comme ça?

 $(document).ready(function() {
        $('#i1').on('keyup',function() {
                  alert('Change has been recognised!');
        });
        $('#i1').on('paste',function() {
                  alert('Change has been recognised!');
        });
});


4 commentaires

'Pas après que cette entrée a été coutuée.' ... ... Pourtant, 'L'événement de Blur est envoyé à un élément lorsqu'il perd la mise au point.'


ok corrigé réponse @gantthomes


Coller Les incendies avant que le texte ne soit mis à jour ( val () montre toujours le texte ancien)


Utilisez un délai d'attente de milisecondes par exemple $ ('# I1'). Sur ('Coller', fonction () {SettimeOut (alerte ("ALERT (" + $ (Ceci) .val ()), 50); });



2
votes

L'événement Keyup se produit lors de la publication d'une clé de clavier.

  $(document).ready(function() {
     $('#i1').on('keyup',function() {
              alert('Changed');
    });


2 commentaires

Méfiez-vous que Keyup n'atteindra pas tous les cas, par exemple. Clic droit / pâte.


J'ai mis à jour ma question



1
votes

Si c'est un champ de texte, vous devez utiliser .keyup

Puisque vous voulez pour le champ HTML5, essayez le .Cliquez sur

devrait fonctionner pour le champ non sûr de la date de la date .


1 commentaires

J'ai mis à jour ma question



0
votes

Utiliser sur ("Keyup") Voici la démo.

http://fiddle.jshell.net/b5uzn/1/


2 commentaires

ok thx, mais je veux que cela fonctionne pour le type d'entrée = numéro par exemple


J'ai mis à jour ma question



12
votes

L'événement réel change avec le type de contrôle. Je mets ensemble quelques exemples:

$(document).ready(function() {
    function callback() { alert($(this).val()); }
    $('input[type=number]').on('input',callback);
    $('input[type=date]').on('input',callback);
    $('input[type=text]').on('keyup',callback);
});


2 commentaires

Pourquoi ne puis-je pas utiliser sur le champ de texte ("entrée")? Il semble que la réponse correcte


Au moins, vous pourriez définir un délai d'attente sur coller - laid, mais cela fonctionnerait probablement.