javascript - 当从 "multiple select"选择一个选项时,将其从其他选择中删除(并反转)

标签 javascript jquery html select

我有 3 个多项选择,例如:

<select multiple>
  <option value="volvo">Volvo</option>
  <option value="saab">Saab</option>
  <option value="opel">Opel</option>
</select>

<select multiple>
  <option value="volvo">Volvo</option>
  <option value="saab">Saab</option>
  <option value="opel">Opel</option>
</select>

<select multiple>
  <option value="volvo">Volvo</option>
  <option value="saab">Saab</option>
  <option value="opel">Opel</option>
</select>

我正在寻找最佳解决方案。想要的行为是当您在一个多选中选择一个项目,然后将其从其他项目中删除(反之亦然)。

我使用 jquery Chosen 插件。 情况:你有 3 个 Angular 色,但用户可以只担任一个 Angular 色。

jsFiddle

最佳答案

基本上你想通过 JS/jQuery 删除选项并更新插件。

代码如下

  $(".chzn-select").change(function(){   
    $(".chzn-select")   
    .not($(this))  
    .find("option[value="+$(this).val()+"]")   
    .remove();   
    $(".chzn-select").trigger("liszt:updated");   
   });

和一个 fiddle 链接 JsFiddle

编辑: 试试这个新的 fiddle ,它可以处理多个选择

$(".chzn-select").css('width', '300px').chosen({
        display_selected_options: false,
        no_results_text: 'not found',
    }).change(function(){
        var me = $(this);
        $(".chzn-container .search-choice").each(function(){
            var text = $('span',this).text();
            $(".chzn-select")
            .not(me)
            .find("option").each(function(){
               if ($(this).text() == text) $(this).prop('disabled',true);
            });
        });
        $(".chzn-select").trigger("liszt:updated");
});

已编辑:
尝试这个: JsFiddle
看看它是否让你满意......:)

关于javascript - 当从 "multiple select"选择一个选项时,将其从其他选择中删除(并反转),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17950758/

相关文章:

javascript - 我如何使用 datepicker jquery 突出显示特定日期

jquery - IE jQuery 不透明度抗锯齿问题

html - 更改图像以适合 Div

javascript - 如何使用 angularFireCollection 初始加载回调?

javascript - 查找与元素中的类最接近的选择框

javascript - jQuery 选择带有标签的复选框

jquery - ngRoute 在页面之间随机切换

html - 如何删除我的 div 上方和下方的间隙?

javascript - 无法在 AngularJS 版本的 SmartAdmin 模板中使用动态数据使用迷你图

javascript - 在 HTML5 和 JavaScript 中循环访问 localStorage