2015-07-20 5 views
0

Я использую выпадающий список Select2, мое требование - установить флажок checkcheck. Если выбраны все параметры, то флажок установлен, и если все параметры не выбраны, установите флажок.Select2 trigger select all checkbox

HTML

<select multiple id="e1" style="width:300px"> 
    <option value="AL">Alabama</option> 
    <option value="Am">Amalapuram</option> 
    <option value="An">Anakapalli</option> 
    <option value="Ak">Akkayapalem</option> 
    <option value="WY">Wyoming</option> 
</select> 
<input type="checkbox" id="checkbox" >Select All 

<input type="button" id="button" value="check Selected"> 

JS

$("#e1").select2(); 
$("#checkbox").click(function(){ 
    if($("#checkbox").is(':checked')){ 
     $("#e1 > option").prop("selected","selected"); 
     $("#e1").trigger("change"); 
    }else{ 
     $("#e1 > option").removeAttr("selected"); 
     $("#e1").trigger("change"); 
    } 
}); 

$("#button").click(function(){ 
     alert($("#e1").val()); 
}); 

Fiddle

http://jsfiddle.net/jEADR/62/.

+2

Пожалуйста, поставьте свой код в вопрос, ссылку на jsFiddle недостаточно, чтобы воспроизвести ваш вопрос, если jsFiddle уйдет. – JasonWilczak

ответ

0

Вы должны поймать событие изменения, когда огонь событие вам нужно проверить, сколько вариантов выбрали и сравнить их со всеми вариантами:

$("#e1").on("change", function(e) { 

    var count = this.selectedOptions.length // how options selected 
    var opt = this.length; // how options total 

    if (count===opt) { 
     // all selected 
     $("#checkbox").prop('checked', true); 
    } else { 
     // not all selected 
     $("#checkbox").prop('checked', false);   
    } 
}); 

http://jsfiddle.net/jEADR/1834/

+0

Он предоставляет TypeError: e.val не определено – Andy

+0

если 5 значений уже выбраны, то как этот код работает? – Andy

+0

Странно. В каком браузере? Однако посмотрите обновленную версию. –

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