2017-08-15 38 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();

相关问题