Rumah >hujung hadapan web >tutorial js >jQuery tidak serasi dengan peristiwa perubahan input penyelesaian masalah process_jquery

jQuery tidak serasi dengan peristiwa perubahan input penyelesaian masalah process_jquery

WBOY
WBOYasal
2016-05-16 16:29:051437semak imbas

Projek yang dibangunkan baru-baru ini memerlukan bahawa selepas pengguna memasukkan kuantiti ke dalam berbilang kotak INPUT dalam bentuk WEB, jumlah kuantiti input akan dikira secara automatik dan dipaparkan dalam kotak INPUT yang ditentukan Fungsi ini dilaksanakan Prinsipnya mudah, iaitu, anda hanya perlu mengira jumlah dalam peristiwa pertukaran INPUT dan menetapkan hasilnya ke kotak INPUT yang ditentukan Kodnya adalah seperti berikut:

Salin kod Kod adalah seperti berikut:

$("input.syxcost").change(function(){
computeReceivedsyxcost();
}
function computeReceivedsyxcost(){ //Kira jumlah
              var syxcost=0;
                   $("input.syxcost").setiap(fungsi(){
              var cost=parseFloat($(this).val());
Jika (!isNaN(kos))
                       syxcost=syxcost cost;
              });
                  $("#receivedsyxcost").val(syxcost); //Tunjukkan hasil akhir
           }

Saya fikir ini akan menyelesaikannya. Ia sememangnya OK dalam Google Chrome, tetapi dalam IE 9, saya mendapati bahawa selepas memasukkan kuantiti dalam INPUT, peristiwa perubahan tidak akan dicetuskan dengan serta-merta mencari dalam talian Ramai orang mengatakan bahawa masalah ini wujud, dan saya tidak perlu menulisnya sendiri berdasarkan pelaksanaannya daripada INPUT (seperti: data-oval), kemudian apabila INPUT kehilangan fokus, dapatkan sama ada NILAI semasa adalah sama dengan nilai dalam atribut yang telah disesuaikan sebelum ini, ini bermakna NILAI telah diubah dan perlu dikira semula. Jika tidak Abaikan, kod pelaksanaan adalah seperti berikut:

Salin kod Kod adalah seperti berikut:

$("input.syxcost").fokus(fungsi(){
                   $(this).attr("data-oval",$(this).val()); //Simpan nilai semasa ke dalam atribut tersuai
               }).kabur(fungsi(){
                    var oldVal=($(this).attr("data-oval")); //Dapatkan nilai asal
              var newVal=($(this).val()); //Dapatkan nilai semasa
Jika (oldVal!=newVal)
                                                {
computeReceivedsyxcost(); //Jika tidak sama, hitung
                }
            });

Selepas pengesahan berulang, ia dipaparkan seperti biasa dalam semua penyemak imbas, menyelesaikan masalah keserasian!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn