Saya menggunakan jQuery untuk menyembunyikan dan menampilkan elemen ketika grup tombol radio diubah / diklik. Ini berfungsi dengan baik di browser seperti Firefox, tetapi di IE 6 dan 7, tindakan hanya terjadi ketika pengguna kemudian mengklik di tempat lain di halaman.
Singkatnya, ketika Anda memuat halaman, semuanya terlihat baik-baik saja. Di Firefox, jika Anda mengklik tombol radio, satu baris tabel disembunyikan dan yang lainnya langsung ditampilkan. Namun, di IE 6 dan 7, Anda mengklik tombol radio dan tidak ada yang akan terjadi sampai Anda mengklik suatu tempat di halaman. Baru kemudian IE menggambar ulang halaman, menyembunyikan dan menampilkan elemen yang relevan.
Inilah jQuery yang saya gunakan:
$(document).ready(function () {
$(".hiddenOnLoad").hide();
$("#viewByOrg").change(function () {
$(".visibleOnLoad").show();
$(".hiddenOnLoad").hide();
});
$("#viewByProduct").change(function () {
$(".visibleOnLoad").hide();
$(".hiddenOnLoad").show();
});
});
Inilah bagian dari XHTML yang mempengaruhi. Seluruh halaman divalidasi sebagai XHTML 1.0 Strict.
<tr>
<td>View by:</td>
<td>
<p>
<input type="radio" name="viewBy" id="viewByOrg" value="organisation"
checked="checked" />Organisation</p>
<p>
<input type="radio" name="viewBy" id="viewByProduct" value="product" />Product</p>
</td>
</tr>
<tr class="visibleOnLoad">
<td>Organisation:</td>
<td>
<select name="organisation" id="organisation" multiple="multiple" size="10">
<option value="1">Option 1</option>
<option value="2">Option 2</option>
</select>
</td>
</tr>
<tr class="hiddenOnLoad">
<td>Product:</td>
<td>
<select name="product" id="product" multiple="multiple" size="10">
<option value="1">Option 1</option>
<option value="2">Option 2</option>
</select>
</td>
</tr>
Jika ada yang tahu mengapa ini terjadi dan bagaimana cara memperbaikinya, mereka akan sangat dihargai!