多选在jquery中添加/删除select

时间:2017-06-05 13:06:30

标签: javascript jquery

在表格中我有两个多选。我可以使用以下jquery函数将select1中的项添加到select2或从select2中删除项:

<script  type="text/javascript">
   function addProject() {    
      return !$('#select1 option:selected').remove().appendTo('#select2');
   }

   function removeProject() {
      return !$('#select2 option:selected').remove().appendTo('#select1');
   }
</script>

<select multiple id="select1" class="form-control">
@for(p <- projects) {
    option value="@p.getName">@p.getName</option>
}
</select>

<button type="button" class="btn btn-primary"  onclick="addProject();" >
   <span class='glyphicon glyphicon-plus'></span>
</button>
<button type="button" class="btn btn-primary"  onclick="removeProject();" >
   <span class='glyphicon glyphicon-minus'></span>
</button>

<select name="projects" multiple id="select2" class="form-control">
</select>

问题是,如果我向select2添加项目并提交表单,我会收到所有值。如果我添加和删除项目,反之亦然,我不会收到价值。

我尝试添加另一个jquery函数来选择select2中的所有项目,然后再提交表单但是没有工作。

function select_projects() {
    $('#select2').children('option').attr('selected', 'selected');
}

如何解决问题?

1 个答案:

答案 0 :(得分:1)

我解决了改变select_projects()函数的问题,如下所示:

function select_projects() {
    $('#select1 option:selected').attr('selected', false);
    $('#select2').children().prop('selected', true);
}