जब एक रेडियो बटन समूह बदल / क्लिक किया जाता है तो मैं तत्वों को छिपाने और दिखाने के लिए jQuery का उपयोग कर रहा हूं। यह फ़ायरफ़ॉक्स जैसे ब्राउज़रों में ठीक काम करता है, लेकिन IE 6 और 7 में, कार्रवाई केवल तब होती है जब उपयोगकर्ता तब पृष्ठ पर कहीं और क्लिक करता है।
विस्तृत करने के लिए, जब आप पृष्ठ को लोड करते हैं, तो सब कुछ ठीक दिखता है। फ़ायरफ़ॉक्स में, यदि आप एक रेडियो बटन पर क्लिक करते हैं, तो एक तालिका पंक्ति छिपाई जाती है और दूसरे को तुरंत दिखाया जाता है। हालाँकि, IE 6 और 7 में, आप रेडियो बटन पर क्लिक करते हैं और तब तक कुछ नहीं होगा जब तक आप पृष्ठ पर कहीं क्लिक नहीं करते। इसके बाद ही IE संबंधित तत्वों को छिपाते और दिखाते हुए पृष्ठ को फिर से तैयार करता है।
यहाँ jQuery का उपयोग कर रहा हूँ:
$(document).ready(function () {
$(".hiddenOnLoad").hide();
$("#viewByOrg").change(function () {
$(".visibleOnLoad").show();
$(".hiddenOnLoad").hide();
});
$("#viewByProduct").change(function () {
$(".visibleOnLoad").hide();
$(".hiddenOnLoad").show();
});
});
यहां XHTML का वह हिस्सा है जो इसे प्रभावित करता है। पूरा पृष्ठ XHTML 1.0 सख्त के रूप में मान्य है।
<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>
यदि किसी के पास कोई विचार है कि यह क्यों हो रहा है और इसे कैसे ठीक किया जाए, तो उन्हें बहुत सराहना मिलेगी!