मैं अक्षम रेडियो बटन कैसे सक्षम कर सकता हूं?

निम्नलिखित कोड IE में बहुत अच्छा काम करता है, लेकिन एफएफ या सफारी में नहीं। मैं अपने जीवन के लिए काम नहीं कर सकता क्यों। यदि आप "2 रेडियो बटन अक्षम करें" विकल्प चुनते हैं तो कोड रेडियो बटन अक्षम करने के लिए अनुमानित है। यदि आप "रेडियो बटन सक्षम करें" विकल्प चुनते हैं तो इसे रेडियो बटन सक्षम करना चाहिए। ये दोनों काम ...

हालांकि, यदि आप 2 विकल्प ("सक्षम करें ..." और "अक्षम करें ...") के बीच स्थानांतरित करने के लिए अपने माउस का उपयोग नहीं करते हैं, तो जब तक आप कहीं और क्लिक नहीं करते हैं तब तक रेडियो बटन अक्षम या सक्षम नहीं होते हैं पृष्ठ पर (रेडियो बटन पर नहीं)।

अगर किसी के पास समय / उत्सुक / सहायक लग रहा है, तो कृपया नीचे दिए गए कोड को HTML पृष्ठ में पेस्ट करें और इसे ब्राउज़र में लोड करें। यह आईई में बहुत अच्छा काम करता है, लेकिन समस्या विंडोज़ XP पर एफएफ (मेरे मामले में 3) और सफारी में खुद को प्रकट करती है।

<html>
  <head>
    <script language="javascript">
      function SetLocationOptions() {
        var frmTemp = document.frm;
        var selTemp = frmTemp.user;

        if(selTemp.selectedIndex >= 0) {
          var myOpt = selTemp.options[selTemp.selectedIndex];
          if(myOpt.attributes[0].nodeValue == '1') {
            frmTemp.transfer_to[0].disabled = true;
            frmTemp.transfer_to[1].disabled = true;
            frmTemp.transfer_to[2].checked = true;
          } else {
            frmTemp.transfer_to[0].disabled = false;
            frmTemp.transfer_to[1].disabled = false;
          }
        }
      }
    </script>
  </head>

  <body>
    <form name="frm" action="coopfunds_transfer_request.asp" method="post">
      

      

<input type="radio" name="transfer_to" value="fund_amount1" />Premium <input type="radio" name="transfer_to" value="fund_amount2" />Other <input type="radio" name="transfer_to" value="both" CHECKED />Both

<input type="button" class="buttonStyle" value="Submit Request" /> </form> </body> </html>
0
ro fr bn
उम्म, यह आईई 10 और एफएफ में काम कर रहा है: fiddle
जोड़ा लेखक akinuri, स्रोत

3 उत्तर

खैर, आईई में कुछ हद तक गैर मानक ऑब्जेक्ट मॉडल है; आप जो कर रहे हैं वह काम नहीं करना चाहिए लेकिन आप इससे दूर हो रहे हैं क्योंकि आईई आपके लिए अच्छा है। फ़ायरफ़ॉक्स और सफारी में, आपके कोड में document.frm अपरिभाषित मूल्यांकन करता है।

आपको अपने फॉर्म तत्वों पर आईडी मानों का उपयोग करने और दस्तावेज़ ऑब्जेक्ट के अस्तित्वहीन गुणों का जिक्र करने के बजाय document.getElementById ('जो भी') का संदर्भ देने के लिए उन्हें संदर्भ वापस करने की आवश्यकता है।

तो यह थोड़ा बेहतर काम करता है और आप जो भी कर सकते हैं वह कर सकते हैं:

Line 27: <form name="frm" id="f" ...

Line 6: var frmTemp = document.getElementById('f');

लेकिन यदि आप चीजों के बारे में जाने के सही तरीके के बारे में अधिक जानना चाहते हैं तो आप इस उत्कृष्ट पुस्तक को देखना चाहेंगे: DOM स्क्रिप्टिंग जेरेमी कीथ द्वारा

साथ ही जब हम इस विषय पर हैं, वही लेखक द्वारा बुलेटप्रूफ अजाक्स आपके बुकशेल्फ़ पर एक स्थान के योग्य भी है जावास्क्रिप्ट: गुड पार्ट्स डौग द्वारा Crockford

0
जोड़ा

कीबोर्ड का उपयोग करते समय आईई के व्यवहार की नकल करने के लिए एफएफ प्राप्त करने के लिए, आप चयन बॉक्स पर कीप ईवेंट का उपयोग कर सकते हैं। आपके उदाहरण में (मैं इस तरह इवेंट हैंडलरों को जोड़ने का प्रशंसक नहीं हूं, लेकिन यह एक और विषय है), यह इस तरह होगा:

0
जोड़ा

क्यों नहीं AJAX स्क्रिप्टिंग पुस्तकालयों में से एक को पकड़ो, वे बहुत सारे क्रॉस ब्राउज़र डॉम स्क्रिप्टिंग काले जादू को दूर करते हैं और जीवन को बहुत आसान बनाते हैं।

0
जोड़ा