2013-06-20 49 views
0

我想在asmselect中做一個相當簡單的任務,沒有運氣。Asmselect和更改選項的選定狀態用Javascript

我有一個使用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上的問題相同。任何幫助讚賞。

回答

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,我希望這篇文章是幫助他人實施的工具。

相關問題