2010-06-25 12 views
10

में काम नहीं करता मैं निम्नलिखित कोड है, जो क्रोम/एफएफ में पूरी तरह से काम करता है:onchange/onclick में एक चेकबॉक्स आईई

chkbx_send_demo.onchange = function(){ 
    if(sel_template.selectedIndex <= 0 && chkbx_send_demo.checked == true){ 
     alert("Choose a Template"); 
     sel_template.selectedIndex = 1; 
    } 
    if(chkbx_send_demo.checked == false){ 
     sel_template.selectedIndex = 0; 
    } 
} 

लेकिन यह सिर्फ IE में काम नहीं करेगा। मैंने घटना को chkbx_send_demo.onclick में बदलने की कोशिश की है और यह अभी भी काम नहीं करेगा।

+1

शायद आप पहले से ही चेक कर चुके हैं, लेकिन: क्या आप यह सुनिश्चित कर रहे हैं कि "chkbx_send_demo" सही चेकबॉक्स को संदर्भित करता है? क्या आप एक चेतावनी कर सकते हैं और इसकी पुष्टि कर सकते हैं? इसके अलावा, एफएफ में काम करने वाला सटीक कोड? – Nivas

उत्तर

16

इंटरनेट एक्सप्लोरर केवल तभी ईवेंट चालू करता है जब चेकबॉक्स फोकस (ऑनब्लर) खो देता है। भी यहाँ देखें:
http://krijnhoetmer.nl/stuff/javascript/checkbox-onchange/
और यहाँ:
http://bytes.com/topic/javascript/answers/92116-onchange-checkbox

+1

आईई व्यवहार के बारे में एचटीएमएल विनिर्देश के अनुसार सही है "जब एक नियंत्रण इनपुट फोकस खो देता है और उसका मान फोकस प्राप्त करने के बाद संशोधित किया गया है तो यह परिवर्तन तब होता है। यह विशेषता निम्न तत्वों पर लागू होती है: इनपुट, चयन, और टेक्स्टटेरा।" http://www.w3.org/TR/REC-html40/interact/scripts.html#adef-onchange –

1

क्या आप वाकई onclick काम नहीं करता है? क्या आपने जावास्क्रिप्ट त्रुटियों की जांच की?

IE7 में निम्नलिखित काम करता है (परीक्षण करने के लिए IE6 की जरूरत नहीं है)

<html> 
    <head> 
     <script> 
      function text() 
      { 
       alert(document.getElementById("cbxTest").checked); 
      } 
     </script> 
    </head> 
    <body> 
     <input type="checkbox" name="cbxTest" id="cbxTest" onclick="text()"/> 
     <label for="cbxTest"> Test </label> 
    </body> 
</html> 

नोट: यह केवल onclick के लिए है। ऑनचेंज आईई में अलग-अलग काम करता है, गोशा का जवाब देखें।

+0

मुझे 100% यकीन है कि यह काम नहीं कर रहा है (मैं ऑनक्लिक फ़ंक्शन के प्रत्येक चरण में अलर्ट डालता हूं) लेकिन जब मैं स्क्रिप्ट को डीबग करता हूं तो आश्चर्यजनक रूप से जावास्क्रिप्ट त्रुटियां नहीं होती हैं। –

+0

शायद आप पहले से ही चेक कर चुके हैं, लेकिन: क्या आप यह सुनिश्चित कर रहे हैं कि "chkbx_send_demo" सही चेकबॉक्स को संदर्भित करता है? क्या आप एक चेतावनी कर सकते हैं और इसकी पुष्टि कर सकते हैं? इसके अलावा, एफएफ में काम करने वाला सटीक कोड? – Nivas

+0

मैं इसे विश्वास नहीं कर सकता, मैंने एक चेतावनी (chkbx_send_demo.type) किया; और एक 'छुपा' मिला ... document.getElementById ("डेमो") इस तत्व को कैसे प्राप्त कर सकता है: <इनपुट प्रकार = "छुपा" नाम = "डेमो" मान = "0"> इसके बजाय: <इनपुट टाइप = "चेकबॉक्स" आईडी = "डेमो" नाम = "डेमो" मान = "1" शीर्षक = '' tabindex = "107"> ?? (और यह केवल आईई में क्यों होता है ??) लेकिन वैसे भी, धन्यवाद, अब सब कुछ स्पष्ट है –

0

मेरी जे एस कोड अब कुछ इस तरह है:

if(navigator.appName == "Microsoft Internet Explorer"){ 
      alert("IE"); 
      chkbx_send_demo.onclick = function(){ 
       alert("HI"); 
       if(sel_template.selectedIndex <= 0 && chkbx_send_demo.checked == true){ 
        alert("Choose a Template"); 
        sel_template.selectedIndex = 1; 
       } 
       if(chkbx_send_demo.checked == false){ 
        alert("HI"); 
        sel_template.selectedIndex = 0; 
       } 
       alert("HI"); 
      } 
     } 
     else 
     { 
      chkbx_send_demo.onchange = function(){ 
       if(sel_template.selectedIndex <= 0 && chkbx_send_demo.checked == true){ 
        alert("Choose a Template"); 
        sel_template.selectedIndex = 1; 
       } 
       if(chkbx_send_demo.checked == false){ 
        sel_template.selectedIndex = 0; 
       } 
      } 
     } 

कोई JavaScript त्रुटि है, लेकिन कोड सिर्फ IE पर निष्पादित नहीं कर रहा है और मैं सच में क्यों नहीं समझ सकता।

+0

क्या आप अपना एचटीएमएल भी पोस्ट कर सकते हैं? आपको 'chkbx_send_demo' कैसे मिला? –

संबंधित मुद्दे