Maison > interface Web > js tutoriel > jQuery n'est pas compatible avec la résolution de problème d'événement de changement d'entrée process_jquery

jQuery n'est pas compatible avec la résolution de problème d'événement de changement d'entrée process_jquery

WBOY
Libérer: 2016-05-16 16:29:05
original
1418 Les gens l'ont consulté

Un projet récemment développé nécessite qu'après que l'utilisateur ait saisi des quantités dans plusieurs zones de SAISIE dans un formulaire WEB, la somme des quantités saisies soit automatiquement calculée et affichée dans la zone de SAISIE spécifiée. Cette fonction est implémentée. Le principe est simple, c'est-à-dire qu'il vous suffit de calculer la somme dans l'événement onchange de INPUT et d'attribuer le résultat à la case INPUT spécifiée. Le code est le suivant :

.

Copier le code Le code est le suivant :

$("input.syxcost").change(function(){
calculateReceivedsyxcost();
>
function calculateReceivedsyxcost(){ //Calculer la somme
              var syxcost=0;
                  $("input.syxcost").each(function(){
              var cost=parseFloat($(this).val());
Si (!isNaN(coût))
                      syxcost=syxcost coût ;
              });
                  $("#receivedsyxcost").val(syxcost); //Afficher le résultat final
           }

Je pensais que cela résoudrait le problème. C'est effectivement OK dans Google Chrome. Cependant, dans IE 9, j'ai constaté qu'après avoir entré la quantité dans INPUT, l'événement de changement ne serait pas déclenché immédiatement. recherché en ligne. Beaucoup de gens disent que ce problème existe, et il n'y a aucun moyen. Je dois l'écrire moi-même en fonction de l'implémentation. Mon idée est la suivante : lorsque l'ENTRÉE obtient le focus, obtenez la VALEUR actuelle et stockez-la dans l'attribut personnalisé. de l'ENTRÉE (par exemple : data-oval), puis lorsque INPUT perd le focus, déterminez si la VALEUR actuelle est la même que la valeur de l'attribut précédemment personnalisé. Sinon, cela signifie que la VALEUR a été modifiée et doit le faire. être recalculé Sinon Ignorer, le code d'implémentation est le suivant :

Copier le code Le code est le suivant :

$("input.syxcost").focus(function(){
                   $(this).attr("data-oval",$(this).val()); //Enregistre la valeur actuelle dans l'attribut personnalisé
               }).blur(function(){
                    var oldVal=($(this).attr("data-oval")); //Obtenir la valeur d'origine
              var newVal=($(this).val()); //Obtenir la valeur actuelle
Si (oldVal!=newVal)
                                                {
calculateReceivedsyxcost(); //Si ce n'est pas pareil, calculez
                }
            });

Après vérification répétée, il s'affiche normalement dans tous les navigateurs, résolvant ainsi le problème de compatibilité !

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal