1

我有一个调用 javascript 函数的复选框。选中此复选框时,将自动填写表单中的其他值。这些其他值的类型是另一个复选框和一个选项选择字段。我在html中有以下内容:

<div id="NA" >
<input type="checkbox" name="remove_cd" value="r_on" id="r_on_cd" />N/A:
<select name="reason" id="reason_list">
<option value="1">Option 1</option>
<option value="2">Option 2</option>
<option value="3">Option 3</option>
</select>
<font color="#cc0000">Reason Required</font><hr/></div>

在javascript中,我在函数中有以下内容:

...
var y = document.getElementById("NA").children;
for(var i=0; i<y.length; y++){
    y[i].checked=true;
    y[i].options.selectedIndex=2;
}
...

我有点困惑为什么这不起作用。当我单击表单中的复选框时,<div id="NA">会选中该复选框下的复选框,但下拉菜单中的选项不会更改。想法?

4

3 回答 3

2

你有y++而不是i++在你的循环中。试试这个

for(var i=0; i<y.length; i++){
    y[i].checked=true;
    y[i].selectedIndex=2;

}

呼吁投掷.selectedIndex_optionsCannot set property 'selectedIndex' of undefined

于 2012-07-23T20:17:57.830 回答
0
y[i].options.selectedIndex=2;

可能应该只是阅读:

y[i].selectedIndex=2;
于 2012-07-23T20:11:07.157 回答
0

我不确定你到底想做什么,但试试这个:

<div id="NA" >
<input type="checkbox" name="remove_cd" value="r_on" id="r_on_cd" />N/A:
<select name="reason" id="reason_list">
<option value="1">Option 1</option>
<option value="2">Option 2</option>
<option value="3">Option 3</option>
</select>
<font color="#cc0000">Reason Required</font><hr/></div>
<script>
    window.onload = function() {
        var y = document.getElementById("NA").children; // it's not a good idea to use children array, because if you add a new element in the begining your script will fail
        var checkbox = y[0]; // it is better here to use: document.getElementById('r_on_cd');
        var select = y[1]; // it is better here to use: document.getElementById('reason_list');
        checkbox.onclick = function() {
            select.options.selectedIndex = 2;
        };
    }
</script>
于 2012-07-23T20:36:51.390 回答