2013-01-23 10 views
11

मेरे पास मेरे HTML पृष्ठ पर एक चुनिंदा तत्व है। मैं इसे एक सरणी के साथ पॉप्युलेट करना चाहता हूं। क्योंकि हम एक्शन स्क्रिप्ट में कॉम्बोबॉक्स में डेटाप्रोवाइडर के रूप में एक सरणी दे सकते हैं। मैं क्या निम्नलिखिततत्व का चयन करने के लिए विकल्प के रूप में मैं सरणी कैसे दे सकता हूं?

HTML में

...

<table> 
    <tr> 
    <td> 
     <label>Recording Mode:</label> 
    </td> 
    <td> 
     <select id="rec_mode">   
     </select> 
    </td> 
    </tr> 
</table> 
जावास्क्रिप्ट में

...

var videoSrcArr = new Array("option1", "option2", "option3", "option4", "option5"); 

कैसे मैं rec_mode तत्व पॉप्युलेट कर सकते हैं जब पेज VideoSrcArr साथ भरी हुई है? धन्यवाद

+0

संभव में सरणी मान प्राप्त कर सकते है [जावास्क्रिप्ट का डुप्लिकेट - सरणी के साथ ड्रॉप डाउन सूची पॉप्युलेट करें] (http://stackoverflow.com/questions/9895082/javascript-populate-drop-down-list-with -एरे) (और कई अन्य प्रश्न)। – nnnnnn

उत्तर

13

मैं अत्यधिक आप की तरह एक प्रारूप का उपयोग की सलाह देते हैं निम्नलिखित:

var options = 
[ 
    { 
    "text" : "Option 1", 
    "value" : "Value 1" 
    }, 
    { 
    "text"  : "Option 2", 
    "value" : "Value 2", 
    "selected" : true 
    }, 
    { 
    "text" : "Option 3", 
    "value" : "Value 3" 
    } 
]; 

var selectBox = document.getElementById('rec_mode'); 

for(var i = 0, l = options.length; i < l; i++){ 
    var option = options[i]; 
    selectBox.options.add(new Option(option.text, option.value, option.selected)); 
} 

आप एक डिफ़ॉल्ट विकल्प का चयन करने के लिए की समस्या के लिए में नहीं चला और आप आसानी से विकल्प सरणी गतिशील उत्पन्न कर सकते हैं ।

- अद्यतन - ऊपर कोड की

ES6 संस्करण:

let optionList = document.getElementById('rec_mode').options; 
let options = [ 
    { 
    text: 'Option 1', 
    value: 'Value 1' 
    }, 
    { 
    text: 'Option 2', 
    value: 'Value 2', 
    selected: true 
    }, 
    { 
    text: 'Option 3', 
    value: 'Value 3' 
    } 
]; 

options.forEach(option => 
    optionList.add(
    new Option(option.text, option.value, option.selected) 
) 
); 
+0

चुनिंदा मूल्य कैसे प्राप्त करें? –

+0

इस के बाद से ES6 अद्यतन है, शायद 'var' को हटा दें। 'let' के साथ बदलें? – VisWebsoft

+0

अच्छी कॉल @VisWebsoft – THEtheChad

4

मैं सरणी के बजाय ऑब्जेक्ट का उपयोग करने की अनुशंसा करता हूं, यह मानकों के साथ बहुत उपयोगी और सम्मानजनक तरीके से होगा। कारण यह है कि हम "कुंजी" द्वारा ऑब्जेक्ट में इंडेक्स कर सकते हैं और "मान" प्राप्त कर सकते हैं। सामग्री प्रदर्शित करने और उन्हें को रीसेट करने के लिए आप का पालन कर सकते इस NOTES

CHECK HERE

<!DOCTYPE html> 
<html> 
<body> 
<table> 
    <tr> 
    <td> 
     <label>Recording Mode:</label> 
    </td> 
    <td> 
     <select id="rec_mode">   
     </select> 
    </td> 
    </tr> 
</table> 
</body> 
<script> 
var myobject = { 
    ValueA : 'Text A', 
    ValueB : 'Text B', 
    ValueC : 'Text C' 
}; 
var select = document.getElementById("rec_mode"); 
for(index in myobject) { 
    select.options[select.options.length] = new Option(myobject[index], index); 
} 

</script> 
</html> 
1

आप ऐसा कर सकते हैं:

var videoSrcArr = new Array("option1","option2","option3","option4","option5"), 
    selectEl = document.getElementById('rec_mode'); 


for(var i = 0; i < videoSrcArr.length; i++){ 
    selectEl.options.add(new Option(videoSrcArr[i], videoSrcArr[i])); 
}        
+0

- सरणी कन्स्ट्रक्टर की तुलना में एक सरणी अक्षर का उपयोग करने के लिए बेहतर है क्योंकि यह टाइप करने के लिए कम है और अप्रत्याशित चीजें करने की संभावना कम है (उदाहरण के लिए 'नया ऐरे (9) 'बनाम' 9] ' – RobG

3

यह एक सरणी के साथ ComboBox पॉप्युलेट करने के लिए सबसे आसान तरीका है।

var j = new Array("option1","option2","option3","option4","option5"),  
var options = ''; 

for (var i = 0; i < j.length; i++) { 
    options += '<option value="' + j[i]+ '">' + j[i] + '</option>'; 
} 
$("#rec_mode").html(options); 
0

यह सबसे अच्छा तरीका है आप कॉम्बो बॉक्स

var states = new Array(); 
 
states['India'] = new Array('Andhra Pradesh','Arunachal Pradesh','Assam','Bihar','Chhattisgarh','Goa','Gujarat','Haryana','Himachal Pradesh','Jammu and Kashmir','Jharkhand','Karnataka','Kerala','Madhya Pradesh','Maharashtra','Manipur','Meghalaya','Mizoram','Nagaland','Odisha','Punjab','Rajasthan','Sikkim','Tamil Nadu','Telangana','Tripura','Uttar Pradesh','Uttarakhand','WestBengal','Andaman and Nicobar Islands','Chandigarh','Dadra and Nagar Haveli','Daman and Diu','Lakshadweep','Puducherry'); 
 

 
function setStates() { 
 
\t var newOptions=states['India']; 
 
\t var newValues=states['India']; 
 
\t selectField = document.getElementById("state"); 
 
\t selectField.options.length = 0; 
 
\t for (i=0; i<newOptions.length; i++) 
 
\t { 
 
\t selectField.options[selectField.length] = new Option(newOptions[i], newValues[i]); 
 
\t } 
 
}
<body onload="setStates();" 
 
<label>State :</label> 
 
<select style="width:auto;" name="state" id="state"> 
 
<option value="">Please select a Country</option> 
 
</select><br>

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

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