Heim  >  Artikel  >  Web-Frontend  >  Detaillierte Erläuterung der Lösung des Inkompatibilitätsproblems des Eingabeänderungsereignisses von jQuery

Detaillierte Erläuterung der Lösung des Inkompatibilitätsproblems des Eingabeänderungsereignisses von jQuery

黄舟
黄舟Original
2017-06-27 09:38:011951Durchsuche

Dieser Artikel dokumentiert die Entdeckung im Projekt, dass das Änderungsereignis im IE9 nicht sofort ausgelöst wird. Der Lösungsprozess für Kompatibilitätsprobleme ist auch während des Lösungsprozesses sehr detailliert wurden endlich gelöst. Es ist perfekt kompatibel mit allen gängigen Mainstream-Browsern.

Ein kürzlich entwickeltes Projekt erfordert, dass der Benutzer die Summe der Eingabemengen automatisch berechnet, nachdem er Mengen in mehrere Eingabefelder im WEB-Formular eingegeben hat Das Prinzip der Implementierung dieser Funktion ist einfach: Sie müssen nur die Summe im

onchange-Ereignis von INPUT berechnen und das Ergebnis dem angegebenen INPUT-Feld zuweisen lautet wie folgt:

$("input.syxcost").change(function(){
   computeReceivedsyxcost();
}
function computeReceivedsyxcost(){  //计算加总
              var syxcost=0;
              $("input.syxcost").
each
(function(){
                 var cost=parse
Float
($(this).val());
                 if (!isNaN(cost))
                    syxcost=syxcost + cost;
              });
              $("#receivedsyxcost").val(syxcost); //显示最终结果
           }
Ich dachte, das würde das Problem lösen. In Google Chrome ist es zwar in Ordnung, aber in IE 9 habe ich festgestellt, dass nach der Eingabe des Betrags in INPUT das Änderungsereignis nicht erfolgt Ich habe sofort im Internet nach einem Kompatibilitätsproblem gesucht und es gibt keine Möglichkeit, es selbst zu schreiben Fokus, holen Sie sich den aktuellen WERT und koexistieren Sie. Geben Sie das benutzerdefinierte

-Attribut des INPUT ein (z. B.: data-oval) und ermitteln Sie dann, ob der aktuelle VALUE mit dem Wert übereinstimmt Wenn sie im vorherigen benutzerdefinierten Attribut nicht identisch sind, bedeutet dies, dass der WERT geändert wurde und neu berechnet werden muss. Andernfalls wird er ignoriert. Der Implementierungscode lautet wie folgt:

$("input.syxcost").focus(function(){
                $(this).attr("data-oval",$(this).val()); //将当前值存入自定义属性
            }).blur(function(){
                var oldVal=($(this).attr("data-oval")); //获取原值
                var 
new
Val=($(this).val()); //获取当前值
                if (oldVal!=newVal)
                {
                    computeReceivedsyxcost(); //不相同则计算
                }
            });
Nach wiederholter Überprüfung wird es in allen Browsern normal angezeigt, wodurch das Kompatibilitätsproblem gelöst ist!

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Lösung des Inkompatibilitätsproblems des Eingabeänderungsereignisses von jQuery. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn