我创建了一个简单的下拉列表,该列表是从上一个下拉列表中填充的。
如何选择全部?
下面提到的javascript填充它的代码。
function OnClkAddButtonServer(form)
{
var selObj = document.getElementById('List1');
var selObj2 = document.getElementById('List2');
var i;
var count = selObj2.options.length;
for (i=0;i<selObj.options.length;i++)
{
if (selObj.options[i].selected)
{
var option = new Option(selObj.options[i].text,selObj.options[i].value);
option.title = selObj.options[i].text;
selObj2.options[count] = option;
count=count+1;
selObj.options[i] = null;
i--;
}
}
}
提前致谢
答案 0 :(得分:1)
如果您尝试选择列表中的所有选项,则需要HTML看起来像这样。
<select multiple="multiple">
<option selected="selected">Volvo</option>
<option selected="selected">Saab</option>
<option selected="selected">Mercedes</option>
<option selected="selected">Audi</option>
</select>
要选择新创建的选项,您可以使用Javascript方法更改HTML属性。
document.getElementById("idElement").setAttribute("class", "className");
此示例要求您知道元素的ID,但如果您以其他方式引用该元素,则可以跳过浪费的查找。
答案 1 :(得分:0)
首先,如果您想要选择所有下拉选项,则需要确保选择类型为多个。
例如,假设selObj2引用<select>
标记(<select id = "List2">
),您可能希望将“multiple”属性添加到select标记:
<select id = "List2" multiple = "multiple">
如果您想在JS中执行此操作,可以插入以下行:
selObj2.setAttribute("multiple", "multiple");
,或者
selObj2.multiple = true;
这当然是假设selObj2是<select>
标签。但是,您必须启用多个选项才能选择多个选项。启用此属性后,您可以继续执行下一步...
现在,假设selObj2.options引用了您想要选择的各个选项,您可以在JS中执行此操作(只需在函数OnClkAddButtonServer的结束括号之前添加此块):
for (var i=0; i<selObj2.options.length; i++)
{
selObj2.options[i].setAttribute("selected", true);
// or,
// selObj2.options[i].selected = true;
}
另外,请注意我使用的for循环:
var i=0;
这是因为我们在循环范围内创建了本地变量i,这意味着如果我们想在循环之外使用i,那么这两个实例不会发生冲突。如果您没有使用关键字“var”,那么变量i将可以在整个脚本中的任何位置访问(创建一个全局变量)。将变量保持在本地是一个好习惯,因为人们经常在这些循环中使用i或x作为计数器,所以要采取一些预防措施以避免任何令人讨厌的意外。