Jquery Multiselect - запускать событие вручную? - PullRequest
1 голос
/ 03 июня 2009

Я использую множественный выбор элемента управления jquery из: http://abeautifulsite.net/notebook/62

Мне нужно вручную проверить один из вариантов с помощью javascript для конкретного события.

Всякий раз, когда я пытаюсь изменить отмеченный атрибут или инициировать щелчок, вызывать функцию щелчка явно и т. Д., Я отмечаю этот флажок, но CSS никогда не изменяется, и текстовое поле никогда не обновляется с выбранными в данный момент элементами. .

Пример: Если я хочу установить флажок со значением «TRA» с кодом javascript и убедиться, что он ведет себя правильно, как я могу добиться этого?

<input class="multiSelect" type="text" style="cursor: default;" value="" readonly="readonly"/>

<div class="multiSelectOptions" style="position: absolute; z-index: 99999; display: none;">
    <label class="selectAll">
        <input class="selectAll" type="checkbox"/>
        (All)   
    </label>
    <label>
        <input type="checkbox" value="ADP" name="Attributes"/>
        Adaptation
    </label>
    <label>
        <input type="checkbox" value="TRA" name="Attributes"/>
        Translation
    </label>
</div>  

1 Ответ

0 голосов
/ 03 июня 2009

Похоже, вам нужно установить проверенный атрибут перед тем, как вызвать событие click, а затем установить проверенный атрибут после. Я собираюсь разобраться в этом дальше, но пока вот решение

Рабочий пример

соответствующий код jQuery

$(function() {
    $('#sample').multiSelect();
    $('#check').click(function() {
        $('input[type="checkbox"][value="TRA"]')
            .attr('checked',true)
            .trigger('click')
            .attr('checked',true);
    });
    $('#uncheck').click(function() {
        $('input[type="checkbox"][value="TRA"]')
            .attr('checked',false)
            .trigger('click')
            .attr('checked',false);
    });
});

соответствующий HTML

<select id="sample" multiple="multiple">
    <option value=""/>
    <option value="ADP">Adaptation</option>
    <option value="TRA">Translation</option>
</select>
<br/>
<input id="check" type="button" value="Check TRA" style="margin-left: 250px; width: 100px;" />
<br/>
<input id="uncheck" type="button" value="Uncheck TRA" style="margin-left: 250px; width: 100px;" />
...