我试图在没有运气的情况下在asmselect中做一个相当简单的任务。
我使用asmselect有一个多选列表。最初没有选择任何选项。
<select multiple="multiple" id="myselectdiv" name="myselectdiv[]" title="choose">
<option value="0">zero</option>
<option value="1">one</option>
<option value="2">two</option>
<option value="3">three</option>
</select>
Asmselect已正确初始化,当我手动选择时,我可以看到下面显示的项目。
我想使用Javascript或jQuery动态地将其中一个选项的选定状态更改为“selected”,而不单击该选项。这是非常基本的:
document.getElementById('myselectdiv').options[3].selected=true;
当我尝试在多选列表上执行此操作时,asmselect已初始化,没有任何反应。我希望javascript选择项目并让它显示在下方,就像使用asmselect手动点击它一样。
Safari 5和Firefox 21,MacOS上的问题相同。任何帮助表示赞赏。
答案 0 :(得分:1)
经过一些实验,我能够解决问题。我正在发布解决方案,以防有人遇到同样的问题。
文档描述了在文档加载时初始化asmSelect,例如:
$(document).ready(function() {
$("select[multiple]").asmSelect({
addItemTarget: 'bottom',
animate: true,
highlight: true,
sortable: true
});
});
但是如果您计划使用javascript动态填充和/或更改所选项目,则在页面加载后,asmSelect需要在进行更改时取消初始化,然后重新初始化。例如:
function something() {
[do some ajax]
// remove the asmSelect attachment to the select list
$(".asmSelect").remove(); $(".asmList").remove();
//change some selections in the list with Javascript
document.getElementById('myselectlist').options[3].selected=true;
// re-initialize asmSelect
$(document).ready(function() {
$("select[multiple]").asmSelect({
addItemTarget: 'bottom',
animate: true,
highlight: true,
sortable: true
});
});
}
总的来说,我对asmSelect非常满意,我希望这篇文章对其他人实施该工具很有帮助。