假设我有一个包含此select元素的HTML表单:
<select name="mySelect" id="mySelect">
<option value="1" id="option1">1</option>
<option value="2" id="option2">2</option>
</select>
如何使用原型选择其中一个选项元素?
the API reference of Form.Element中列出的方法似乎对此没有帮助。
编辑:通过“选择”我的意思是“选定”属性对选项元素的等效效果。
答案 0 :(得分:33)
var options = $$('select#mySelect option');
var len = options.length;
for (var i = 0; i < len; i++) {
console.log('Option text = ' + options[i].text);
console.log('Option value = ' + options[i].value);
}
options
是#mySelect
下拉列表中所有选项元素的数组。如果您想将其中一个或多个标记为已选择,请使用selected
属性
// replace 1 with index of an item you want to select
options[1].selected = true;
答案 1 :(得分:15)
要获取当前选择的选项,请使用:
$$('#mySelect option').find(function(ele){return !!ele.selected})
答案 2 :(得分:8)
nils petersohn几乎是正确的,但通常情况下,选项的“id”属性并不是人们所选择的。这个微小的变化使它发挥作用。
var selectThis = 'option1';
$$('select#mySelectId option').each(function(o) {
if(o.readAttribute('value') == selectThis) { // note, this compares strings
o.selected = true;
throw $break; // remove this if it's a multi-select
}
});
答案 3 :(得分:7)
试试这个:
$('mySelect').setValue(1); // or whatever value you want to select
这个人会选择option1
答案 4 :(得分:1)
要按值选择第二个选项,您可以使用:
var myChoice = '2';
$$('select#mySelectId option').each(function(o) {
o.selected = o.readAttribute('value') == myChoice;
});
答案 5 :(得分:1)
var itis = $(mySelectId).select('option[value="' + sValueToSelect + '"]');
if ( itis && itis.length > 0 )
itis[0].selected = true;
答案 6 :(得分:1)
假设您知道要选择的值,请尝试:
$('mySelect').value = 2; // 2 being the value you want selected
答案 7 :(得分:0)
var selectThis = 'option1';
$$('select#mySelect option').each(function(o){
if(o.id==selectThis){o.selected = true;$break;}
});
答案 8 :(得分:-1)
试试这个......
document.observe('dom:loaded', function() {
$('mySelect').observe('change', function(event) {
...
});
});