我使用的表单包含两个带有按钮的选择列表。
我尝试在单击按钮时将选择元素从一个选择列表传递到另一个选择列表。
问题是,所选元素不是删除 1 个元素,而是与列表中后面的元素一起删除。
这是我的功能:
function removeOptions(s1,s2) {
if (s1.options.length == 0) {
alert('You have already removed all list items');
return false;
}
var optionToRemove = s1.options.selectedIndex;
var optn = s1.options[optionToRemove];
s2.options.add(optn);
s1.remove(optionToRemove);
alert('success');
return true;
}
我的按钮配置:
<input type=button onClick="removeOptions(selectList1,selectList2)" ; value='Autorizar'>
我使用的是 Google Chrome。
最佳答案
而不是:
s2.options.add(optn);
s1.remove(optionToRemove);
行,试试这个:
s2.appendChild(optn);
optn
元素将从 s1
元素移动到 s2
元素。该元素(特别是 optn
)不能同时有 2 个或更多父元素,因此 optn
将自动从 s1
中删除。
关于Javascript从选择中删除元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11180044/