Rumah  >  Artikel  >  hujung hadapan web  >  Mengapa Firefox Berkelakuan Berbeza dalam Pengendalian Acara \'Onchange\' untuk Input Julat?

Mengapa Firefox Berkelakuan Berbeza dalam Pengendalian Acara \'Onchange\' untuk Input Julat?

Linda Hamilton
Linda Hamiltonasal
2024-10-21 18:32:02830semak imbas

Why Does Firefox Behave Differently in 'Onchange' Event Handling for Range Inputs?

Jenis Input=Julat Onchange Event Gelagat Perbezaan dalam Firefox

Pernyataan Masalah:

Semasa menggunakan , Firefox hanya mencetuskan acara 'onchange' apabila peluncur dijatuhkan ke kedudukan baharu, manakala penyemak imbas lain seperti Chrome memulakan acara semasa operasi seretan.

Penyelesaian:

Percanggahan dalam tingkah laku timbul disebabkan oleh pelaksanaan penyemak imbas yang berbeza bagi acara 'onchange'. Mengikut spesifikasi HTML, 'onchange' hanya perlu dilaksanakan apabila nilai medan input dimuktamadkan (cth., apabila tetikus dilepaskan).

Untuk menangani perbezaan ini, penyelesaian berikut boleh digunakan:

Gunakan acara 'oninput', yang menangkap perubahan nilai semasa seretan tetikus dan input papan kekunci, sekali gus memberikan gelagat yang konsisten merentas penyemak imbas.

Walau bagaimanapun, 'oninput' tidak disokong dalam IE10. Oleh itu, untuk keserasian menyeluruh, pertimbangkan untuk menggabungkan kedua-dua pengendali acara 'oninput' dan 'onchange':

<code class="html"><span id="valBox"></span>
<input
  type="range"
  min="5"
  max="10"
  step="1"
  oninput="showVal(this.value)"
  onchange="showVal(this.value)"
/></code>

Dengan menggabungkan pendekatan ini, peristiwa 'onchange' akan dicetuskan secara konsisten dalam Firefox, Safari dan Chrome, sementara juga memastikan keserasian dengan IE10.

Atas ialah kandungan terperinci Mengapa Firefox Berkelakuan Berbeza dalam Pengendalian Acara \'Onchange\' untuk Input Julat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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