2012-03-29 16 views
7

में मैं एक DropDownList कि उपयोगकर्ता पूछता है कि वह क्लब में शामिल करना चाहते है। इस सूची में क्लब के विभाग हैं। यह सूची तब तक सक्षम नहीं होगी जब तक कि उपयोगकर्ता हां चुनता न हो।onChange और onSelect DropDownList

मैंने निम्नलिखित कोड बनाया लेकिन समस्या जिसे मैं हल नहीं कर सकता था मान लीजिए कि उपयोगकर्ता हाँ चुनता है तो वह अपना निर्णय बदलता है ताकि वह फिर से नहीं चुन सके। इस मामले में विभागों की सूची अभी भी सक्षम है। मैं इसे तब अक्षम करना चाहता हूं जब वह दोबारा नहीं चुनता।

<html> 
    <head> 
     <script type="text/javascript"> 
      function disable() 
      { 
       document.getElementById("mySelect1").disabled=true; 
      } 
      function enable() 
      { 
       document.getElementById("mySelect1").disabled=false; 
      } 
     </script> 
    </head> 
    <body> 
     <form> 
      <select id="mySelect" onChange="enable();"> 
       <option onSelect="disable();">No</option> 
       <option onSelect="enable();">Yes</option> 
      </select> 
      <select id="mySelect1" disabled="disabled" > 
       <option>Dep1</option> 
       <option>Dep2</option> 
       <option>Dep3</option> 
       <option>Dep4</option> 
      </select> 
     </form> 
    </body> 
</html> 

मैंने सोचा था कि onSelect="disable();" समस्या का समाधान होगा, लेकिन यह अभी भी काम नहीं करता।

धन्यवाद

+0

ऐसा लगता है कि रेडियो बटन अधिक उपयुक्त होंगे। साथ ही, चयन करें और विकल्प तत्वों के लिए 'अचयनित' मान्य विशेषता नहीं है। – RobG

उत्तर

14

मैं इसे इस jsFiddle example कैसा लगा था।

जावास्क्रिप्ट:

function check(elem) { 
    document.getElementById('mySelect1').disabled = !elem.selectedIndex; 
} 

HTML:

<form> 
<select id="mySelect" onChange="check(this);"> 
<option>No</option> 
<option>Yes</option> 
</select> 

<select id="mySelect1" disabled="disabled" > 
<option>Dep1</option> 
<option>Dep2</option> 
<option>Dep3</option> 
<option>Dep4</option> 
</select> 
</form> 
3

मुझे यकीन है onchangeonselect के बाद निकाल दिया हो रही है, अनिवार्य रूप से पुन: सक्षम का चयन करें।

मैं आपको केवलonchange लागू करने की सलाह दूंगा, निरीक्षण करें कि कौन सा विकल्प चुना गया है, और उसके आधार पर सक्षम या अक्षम किया गया है।

चयनित विकल्प उपयोग की मूल्य प्राप्त करने के लिए:

document.getElementById("mySelect").options[document.getElementById("mySelect").selectedIndex].value 

जब से तुम प्रत्येक विकल्प के लिए एक मूल्य निर्दिष्ट नहीं किया है कौन निकलेगा .. कुछ भी नहीं .. :(

<select id="mySelect" onChange="enable();"> 
<option onSelect="disable();" value="no">No</option> 
<option onSelect="enable();" value="yes">Yes</option> 
</select> 

अब यह निकलेगा "yes" या "no"

3

एक मजबूत प्रपत्र बनाने के लिए, यह एक उपयोगी राज्य और उपयोग लिपि में लोड अपने व्यवहार को बढ़ाने के लिए किया है। निम्नलिखित में, चयन को रेडियो बटन द्वारा प्रतिस्थापित किया गया है (उपयोगकर्ता के लिए जीवन को अधिक आसान बनाता है)।

"हाँ" विकल्प डिफ़ॉल्ट रूप से चेक किया गया है और चयन सक्षम है। यदि उपयोगकर्ता या तो रेडियो बटन की जांच करता है, तो चयन तदनुसार सक्षम या अक्षम है।

<form onclick="this.mySelect1.disabled = this.becomeMember[1].checked;" ... > 
    <input type="radio" name="becomeMember" checked>Yes<br> 
    <input type="radio" name="becomeMember">No<br> 

    <select id="mySelect1"> 
    <option>Dep1 
    <option>Dep2 
    <option>Dep3 
    <option>Dep4 
    </select> 
    ... 
</form> 
0

हम्म।तुम क्यों onClick()

<select id="mySelect" onChange="enable();"> 
    <option onClick="disable();">No</option> 
    <option onClick="enable();">Yes</option> 
</select> 
2

का उपयोग नहीं करते, बस & आसान: जावा स्क्रिप्ट कोड:

function JoinedOrNot(){ 
    var cat = document.getElementById("mySelect"); 
    if(cat.value == "yes"){ 
     document.getElementById("mySelect1").disabled = false; 
    }else{ 
     document.getElementById("mySelect1").disabled = true; 
    } 
} 

सिर्फ इस पंक्ति में जोड़ने [onChange = "JoinedOrNot()"]: <select id="mySelect" onchange="JoinedOrNot()">

यह है ठीक काम करें;)

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