2013-06-20 3 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, чтобы изменить выбранный статус одного из параметров на «выбранный», динамически, не нажимая опцию. Это действительно основной:

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, и я надеюсь, что этот пост является полезным для других исполнителей инструмента.

Смежные вопросы