【发布时间】:2016-02-11 20:45:32
【问题描述】:
我有 3 个字段多选,有相同的选项可供选择。
<div>
<ul class="nav nav-tabs">
<li class="active"><a data-toggle="tab" href="#tab1">TAB 1:</a></li>
<li><a data-toggle="tab" href="#tab2">TAB 2:</a></li>
<li><a data-toggle="tab" href="#tab3">TAB 3:</a></li>
</ul>
<div class="tab-content">
<!-- TAB 1 -->
<div id="tab1" class="tab-pane fade in active">
<div class="form-group">
<label class="control-label col-sm-3" for="select1">Produkt:</label>
<div class="col-sm-9">
<select onchange="funkcja(this, 'select2', 'select3')" multiple name="select1[]" id="select1">
<option value="produkt1">Produkt 1</option>
<option value="produkt2">Produkt 2</option>
<option value="produkt3">Produkt 3</option>
<option value="produkt4">Produkt 4</option>
</select>
</div>
</div>
</div>
<!-- TAB 2-->
<div id="tab2" class="tab-pane fade">
<div class="form-group">
<label class="control-label col-sm-3" for="select2">Produkt:</label>
<div class="col-sm-9">
<select onchange="funkcja(this, 'select1', 'select3')" multiple name="select2[]" id="select2">
<option value="produkt1">Produkt 1</option>
<option value="produkt2">Produkt 2</option>
<option value="produkt3">Produkt 3</option>
<option value="produkt4">Produkt 4</option>
</select>
</div>
</div>
</div>
<!-- TAB 3-->
<div id="tab3" class="tab-pane fade">
<div class="form-group">
<label class="control-label col-sm-3" for="select3">Produkt:</label>
<div class="col-sm-9">
<select onchange="funkcja(this, 'select1', 'select2')" multiple name="select3[]" id="select3">
<option value="produkt1">Produkt 1</option>
<option value="produkt2">Produkt 2</option>
<option value="produkt3">Produkt 3</option>
<option value="produkt4">Produkt 4</option>
</select>
</div>
</div>
</div>
</div>
</div>
现在结合一整天的操作方法 funkcja(this, 'select2', 'select3') - 从选择中调用 onchange 将“禁用”添加到其他选项卡中其余选择中的相同选项。 我认为它看起来像那样,但它不起作用:
function funkcja(element, select2, select3)
{
var select2 = document.getElementById(select2);
var select3 = document.getElementById(select3);
for (var i = 0; i < element.length; i++)
{
if (element.options[i].selected)
{
select2.options[i].disabled;
select3.options[i].disabled;
}
}
}
我曾试图通过 jQuery 达到相同的效果,但也没有成功。我真的需要帮助解决这个问题
【问题讨论】:
-
看起来您的问题是:“如何禁用其他两个选择控件中的所有选项”。我看不出这样做的意义。您将只能单击一个选择选项。
-
我希望避免在两个或三个选项卡中选择相同选项的情况。当我在select1中选择option1时,我应该无法在select2中选择option1
-
查看我的回答,希望能满足您的需求
-
似乎在选择 jQuery 插件 (harvesthq.github.io/chosen) 的情况下,所有建议的解决方案都不起作用……您知道可能还有其他类似的插件可以使用。标准多选太丑了
标签: javascript jquery multi-select