2013-01-23 33 views
11

HTML sayfamda bir seçim elemanım var. Bir dizi ile doldurmak istiyorum. action betiğinde comboBox'a dataprovider olarak bir dizi verebileceğimiz gibi. Yapmam HTMLÖğeyi seçmek için seçenekler olarak nasıl bir dizi verebilirim?

... javascript

<table> 
    <tr> 
    <td> 
     <label>Recording Mode:</label> 
    </td> 
    <td> 
     <select id="rec_mode">   
     </select> 
    </td> 
    </tr> 
</table> 

... Aşağıdaki sayfa VideoSrcArr ile yüklendiğinde ben rec_mode elemanı doldurmak nasıl

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

? Teşekkürler

+0

Olası içinde dizi değerler elde edebilirsiniz en iyi yoldur [JavaScript - açılır listeyi diziyle doldurun] (http://stackoverflow.com/questions/9895082/javascript-populate-drop-down-list-with) -array) (ve diğer çeşitli sorular). – nnnnnn

cevap

13

Ben çok gibi bir biçim kullanmak öneriyoruz: Bir varsayılan seçeneği seçmek zorunda sorununa çalışmasını engelleyerek ve kolayca seçenekler dizisini dinamik üretebilir

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)); 
} 

.

- GÜNCELLEME - Yukarıdaki kod

ES6 sürümü:

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

Seçme değeri nasıl alınır? –

+0

Bu yana ES6 güncelleştirmesidir, belki de 'var' yı kaldırır. "let' ile değiştirilsin mi? – VisWebsoft

+0

İyi çağrı @VisWebsoft – THEtheChad

4

Diziler yerine nesneyi kullanmamanızı tavsiye ederim standartlarla çok yararlı ve saygılı bir şekilde olacaktır. Nedeni, nesneye "anahtar" ile indeksleyebilir ve "değeri" alabiliriz. içeriğini görüntülemek ve bunları sıfırlama için bu 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

Bunu yapabilirsin takip edebilirsiniz:

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

- beklenmeyen şeyler yazması ve daha az muhtemel olması nedeniyle dizi yapıcısından daha fazla bir dizi kullanması (örneğin, yeni Array (9) - [9] '. – RobG

3

Bu bir dizi Combobox doldurmak için en basit yoldur.

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

Bu açılan kutu

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>

İlgili konular