如何在Javascript上的SELECT元素中设置或选择一个选项

时间:2015-12-22 19:48:45

标签: javascript select set option

我有一个不属于我的网页,但我想获取SELECT元素的值。

例如:

    <select name="ctl00$MainContent$CldFecha$DdlAnio" id="DdlAnio" class="calendarCombo2" onchange="ValidateYear();" style="width: 60px; display: none;" sb="83980340">
    <option value="2011">2011</option>
    <option value="2012">2012</option>
    <option value="2013">2013</option>
    <option value="2014">2014</option>
    <option selected="selected" value="2015">2015</option>

单击按钮时,我想设置任何此选项,例如2013。

我知道如何获取所选值,执行此操作:

document.getElementById('DdlAnio').value

获取所选索引:

document.getElementById('DdlAnio').selectedIndex

但是我认为基于W3Schools,这些可能会设置所需的选项:

document.getElementById('DdlAnio').value = "2013"
document.getElementById('DdlAnio').selectedIndex = "2"

但没有任何反应,我做错了什么?

我也尝试过:

document.getElementById('DdlAnio').options[DdlAnio.selectedIndex].value = 2013

没有任何反应

4 个答案:

答案 0 :(得分:1)

我建议通过表单名称和元素名称来解决。或者通过getElementById()

&#13;
&#13;
function setOption1() {
    document.form1['ctl00$MainContent$CldFecha$DdlAnio'].selectedIndex = 2;
}

function setOption2() {
    document.getElementById('DdlAnio').selectedIndex = 2;
}
&#13;
<form name="form1">
    <select name="ctl00$MainContent$CldFecha$DdlAnio" id="DdlAnio">
        <option value="2011">2011</option>
        <option value="2012">2012</option>
        <option value="2013">2013</option>
        <option value="2014">2014</option>
        <option selected="selected" value="2015">2015</option>
    </select>
    <button onclick="setOption1()">setOption1</button>
    <button onclick="setOption2()">setOption2</button>
</form>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

document.getElementById('DdlAnio').value = '2013';应该有效。

尝试暂时删除onchange="ValidateYear();"(不知道它实际上做了什么)。

答案 2 :(得分:0)

在页面上创建一个按钮

<input type="button" onclick="setSelectTo('2012');" value="set year"/>

为按钮创建onclick处理程序以获取值,该值可以迭代选择框的选项并设置所选索引。

function setSelectTo(yr) {
    var selList = document.getElementById('DdlAnio');
    for ( var i=0; i<selList.options.length; i++ ) {
       if ( selList.options[i].value == yr ) {
                selList.selectedIndex = i;
                break;
       } 
    }
}

答案 3 :(得分:0)

是的你是对的!我做了一个拟像,复制了这部分代码,我看到了这个:display:none。控制没有出现。但是当我删除时,我可以通过SELECT来获得任何所需的值。

现在,我该如何修改这个CSS属性?我打算设置这样的属性:

Document.GetElementbyID('DdlAnio').setAttribute ('style','style=width:60px)

仅保留该属性。因此,在执行此操作后,我将能够获取SELECT的任何值。右??