2017-08-15 39 views
0

我有一個數組,並在該數組內使用select 2。選擇2正在處理第一個元素,但在其他元素中,選擇2不起作用。選擇2只能在數組的第一個元素上工作

我的HTML:

@foreach($quizzes as $quiz) 

<select class="js-example-basic-multiple grades" multiple id="grades" name="grades[]"> 
<option value="1">Form 1 History</option> 
<option value="2">Form 2 History</option>  
</select> 
@endforeach 

我的腳本:

<script> 
$("#grades").select2(); 
$("#checkbox").click(function(){ 
    if($("#checkbox").is(':checked')){ 
    $("#grades > option").prop("selected","selected");// Select All Options 
    $("#grades").trigger("change");// Trigger change to select 2 
    } 
    else{ 
    $("#grades > option").removeAttr("selected"); 
    $("#grades").trigger("change");// Trigger change to select 2 
    } 
}); 

$("#button").click(function(){ 
    alert($("#grades").val()); 
}); 
$("#grades").select2({ 
    placeholder: "To be done by...", 
    allowClear: true 
}); 

</script> 

我似乎無法找出什麼是錯的。

+2

我想這是因爲你使用的ID =「等級」,試圖類=「等級」 –

+1

是啊,那應該這樣做。 select2();'to'$(「。grades」)。select2();'。 ID的想法是它們是唯一的,但是您創建了具有相同ID的多個DOM。 select2在ID上分配了select2,並且不檢查相同ID的其他元素。 – devk

回答

1

嘗試通過類名稱而不是ID來初始化select2。元素ID在整個DOM中應該是唯一的。

$(".grades").select2({ 
    placeholder: "To be done by...", 
    allowClear: true 
}); 

並刪除第一個$("#grades").select2();

相關問題