我正在尝试根据另一个下拉列表中的值自动选择下拉列表。第二次下拉将比第一次下降更多。如果我选择第一个下拉列表,则应自动选择第二个下拉列表。我尝试了以下代码并收到错误:Options is null or not an object.
???
<script type="text/javascript">
function showState(me){
var values = ''; //populate selected options
for (var i=0; i<me.options.length; i++)
if (me.options[i].selected)
values += me.options[i].value + ',';
values = values.substring(0, values.length-1);
var selected=[values];
var del = document.getElementById('data').value;
for(var i=0; i<del.options.length; i++);
{
if(values[i] == del.options[i])
{
del.options[i].selected;
}
}
}
</script>
<select multiple="multiple" onchange="showState(this);">
<option value="1">Test1</option>
<option value="3">Test3</option>
<option value="4">Test4</option>
</select>
<select name="data" id="data" multiple="multiple">
<option value="1">Test1</option>
<option value="2">Test2</option>
<option value="3">Test3</option>
<option value="4">Test4</option>
</select>
答案 0 :(得分:1)
我认为您应该在代码中进行一些更正,如下所示:
<script type="text/javascript">
function showState(me){
var values = ''; //populate selected options
for (var i=0; i<me.length; i++)
if (me.options[i].selected)
values += me.options[i].value + ',';
values = values.substring(0, values.length-1);
var selected=[values];
var del = document.getElementById('data');
for(var i=0; i<del.length; i++)
{
for(var j=0;j<values.length;j++)
{
if(values[j] == del.options[i].value)
{
del.options[i].selected = true;
}
}
}
}
</script>
有关javascript中Select和Option对象的更多详细信息,请参阅此link!
答案 1 :(得分:0)
我认为你的问题在var del = document.getElementById('data').value;
。如果您要访问所选内容,则应使用var del = document.getElementById('data');
,而不使用.value
。这样变量del
应该有.options
数组。