我有两个多选下拉菜单,它们都有相同的一组值。
如果您在第一个下拉列表中选择了一个选项,则在第二个下拉列表中将禁用该选项。
我可以针对第一个选项执行此操作,但不能针对后续选项执行此操作。
热心的帮助
<h4>Subject to </h4> <br>
<div class="form-group">
<label for="carrier">Charges * </label>
<select placeholder="Choose " class="form-control chosen-select" tabindex="2" name="subject_to[]" id="subject_to_id" width="40%"multiple>
<!-- chosen-select -->
<option value=""></option>
<option value="CURRENCY" id="sub_opt1">CURRENCY</option>
<option value="BUNKER" id="sub_opt2">BUNKER</option>
<option value="LOW SULFUR" id="sub_opt3">LOW SULFUR</option>
<option value="CANAL" id="sub_opt4">CANAL</option>
<option value="GULF" id="sub_opt5">GULF</option>
<option value="PIRACY" id="sub_opt6">PIRACY</option>
<option value="WAR RISK" id="sub_opt7">WAR RISK</option>
<option value="CONGESTION" id="sub_opt8">CONGESTION</option>
<option value="PEAK SEASON" id="sub_opt9">PEAK SEASON</option>
<option value="RATE INCREASE" id="sub_opt10">RATE INCREASE</option>
<option value="EMERGENCY" id="sub_opt11">EMERGENCY</option>
<option value="WINTER" id="sub_opt1">WINTER</option>
<option value="DRAFT LIMITATION" id="sub_opt12">DRAFT LIMITATION</option>
<option value="OTHER" id="sub_opt13">OTHER</option>
<option value="TERMINAL HANDLING" id="sub_opt14">TERMINAL HANDLING</option>
<option value="BOOKING" id="sub_opt15">BOOKING</option>
<option value="DOCUMENTATION" id="sub_opt16">DOCUMENTATION</option>
<option value="TELEX" id="sub_opt17">TELEX</option>
<option value="EXPORT DECLARATION (ENS, AMS, etc.)" id="sub_opt18">EXPORT DECLARATION (ENS, AMS, etc.)</option>
<option value="PORT CHARGE" id="sub_opt19">PORT CHARGE</option>
<option value="SECURITY" id="sub_opt20">SECURITY</option>
<option value="SEAL" id="sub_opt21">SEAL</option>
<option value="CONTAINER INSPECTION" id="sub_opt22">CONTAINER INSPECTION</option>
<option value="CONTAINER WEIGHTING" id="sub_opt23">CONTAINER WEIGHTING</option>
<option value="CIC/EBS" id="sub_opt24">CIC/EBS</option>
</select>
</div>
</div>
<div class="col-md-4">
<h4> Inclusive </h4> <br>
<div class="form-group">
<label for="inclusive"> Charges * </label>
<select placeholder="" class="form-control" tabindex="2" id="inclusive_id" name="inclusive[]" multiple>
<!-- chosen-select -->
<option value=""></option>
<option value="CURRENCY" id="inc_opt1">CURRENCY</option>
<option value="BUNKER" id="inc_opt2">BUNKER</option>
<option value="LOW SULFUR" id="inc_opt3">LOW SULFUR</option>
<option value="CANAL" id="inc_opt4">CANAL</option>
<option value="GULF" id="inc_opt5">GULF</option>
<option value="PIRACY" id="inc_opt6">PIRACY</option>
<option value="WAR RISK" id="inc_opt7">WAR RISK</option>
<option value="CONGESTION" id="inc_opt8">CONGESTION</option>
<option value="PEAK SEASON" id="inc_opt9">PEAK SEASON</option>
<option value="RATE INCREASE" id="inc_opt10">RATE INCREASE</option>
<option value="EMERGENCY" id="inc_opt11">EMERGENCY</option>
<option value="WINTER" id="inc_opt1">WINTER</option>
<option value="DRAFT LIMITATION" id="inc_opt12">DRAFT LIMITATION</option>
<option value="OTHER" id="inc_opt13">OTHER</option>
<option value="TERMINAL HANDLING" id="inc_opt14">TERMINAL HANDLING</option>
<option value="BOOKING" id="inc_opt15">BOOKING</option>
<option value="DOCUMENTATION" id="inc_opt16">DOCUMENTATION</option>
<option value="TELEX" id="inc_opt17">TELEX</option>
<option value="EXPORT DECLARATION (ENS, AMS, etc.)" id="inc_opt18">EXPORT DECLARATION (ENS, AMS, etc.)</option>
<option value="PORT CHARGE" id="inc_opt19">PORT CHARGE</option>
<option value="SECURITY" id="inc_opt20">SECURITY</option>
<option value="SEAL" id="inc_opt21">SEAL</option>
<option value="CONTAINER INSPECTION" id="inc_opt22">CONTAINER INSPECTION</option>
<option value="CONTAINER WEIGHTING" id="inc_opt23">CONTAINER WEIGHTING</option>
<option value="CIC/EBS" id="inc_opt24">CIC/EBS</option>
</select>
</div>
$('#subject_to_id').on('change', function (e) {
var optionSelected = $("option:selected", this);
var idSelected = this.value;
var idSelected = $(this).children(":selected").attr("id");
var str = idSelected;
//alert(str + " "+str.length)
var inc_id = "#inc_"+str.substring(4, str.length);
//alert(inc_id);
$(inc_id).attr("disabled","disabled");
});发布于 2017-03-18 13:19:03
这可以通过相对选择器来完成。为此,我使用了一个option单击事件。然后我抓取另一个表单组并修改它。它是双向的,这意味着如果你从select A中选择,那么select B将被修改,反之亦然。
$("option").click(function () {
$otherFormGroup = $(".form-group").not(
$(this)
.parents(".form-group:first")
); //grabs the other form group
$otherFormGroup.find("option").attr("disabled", false); //resets all other banned items
$otherFormGroup.find("option[value='"+$(this).attr("value")+"']")
.attr("disabled",true); //disabled selected item in the other select area
});<!-- Modified HTML to only demostrate content better in snippet, you can leave your HTML as is. -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
Subject To:
<br><br>
<div class="form-group form-group0">
<label for="carrier">Charges * </label>
<select placeholder="Choose " class="form-control chosen-select" tabindex="2" name="subject_to[]" id="subject_to_id" width="40%"multiple>
<!-- chosen-select -->
<option value=""></option>
<option value="CURRENCY" id="sub_opt1">CURRENCY</option>
<option value="BUNKER" id="sub_opt2">BUNKER</option>
<option value="LOW SULFUR" id="sub_opt3">LOW SULFUR</option>
<option value="CANAL" id="sub_opt4">CANAL</option>
<option value="GULF" id="sub_opt5">GULF</option>
<option value="PIRACY" id="sub_opt6">PIRACY</option>
<option value="WAR RISK" id="sub_opt7">WAR RISK</option>
<option value="CONGESTION" id="sub_opt8">CONGESTION</option>
<option value="PEAK SEASON" id="sub_opt9">PEAK SEASON</option>
<option value="RATE INCREASE" id="sub_opt10">RATE INCREASE</option>
<option value="EMERGENCY" id="sub_opt11">EMERGENCY</option>
<option value="WINTER" id="sub_opt1">WINTER</option>
<option value="DRAFT LIMITATION" id="sub_opt12">DRAFT LIMITATION</option>
<option value="OTHER" id="sub_opt13">OTHER</option>
<option value="TERMINAL HANDLING" id="sub_opt14">TERMINAL HANDLING</option>
<option value="BOOKING" id="sub_opt15">BOOKING</option>
<option value="DOCUMENTATION" id="sub_opt16">DOCUMENTATION</option>
<option value="TELEX" id="sub_opt17">TELEX</option>
<option value="EXPORT DECLARATION (ENS, AMS, etc.)" id="sub_opt18">EXPORT DECLARATION (ENS, AMS, etc.)</option>
<option value="PORT CHARGE" id="sub_opt19">PORT CHARGE</option>
<option value="SECURITY" id="sub_opt20">SECURITY</option>
<option value="SEAL" id="sub_opt21">SEAL</option>
<option value="CONTAINER INSPECTION" id="sub_opt22">CONTAINER INSPECTION</option>
<option value="CONTAINER WEIGHTING" id="sub_opt23">CONTAINER WEIGHTING</option>
<option value="CIC/EBS" id="sub_opt24">CIC/EBS</option>
</select>
</div>
From:
<br><br>
<div class="form-group form-group1">
<label for="carrier">Charges * </label>
<select placeholder="Choose " class="form-control chosen-select" tabindex="2" name="subject_to[]" id="subject_to_id" width="40%"multiple>
<!-- chosen-select -->
<option value=""></option>
<option value="CURRENCY" id="sub_opt1">CURRENCY</option>
<option value="BUNKER" id="sub_opt2">BUNKER</option>
<option value="LOW SULFUR" id="sub_opt3">LOW SULFUR</option>
<option value="CANAL" id="sub_opt4">CANAL</option>
<option value="GULF" id="sub_opt5">GULF</option>
<option value="PIRACY" id="sub_opt6">PIRACY</option>
<option value="WAR RISK" id="sub_opt7">WAR RISK</option>
<option value="CONGESTION" id="sub_opt8">CONGESTION</option>
<option value="PEAK SEASON" id="sub_opt9">PEAK SEASON</option>
<option value="RATE INCREASE" id="sub_opt10">RATE INCREASE</option>
<option value="EMERGENCY" id="sub_opt11">EMERGENCY</option>
<option value="WINTER" id="sub_opt1">WINTER</option>
<option value="DRAFT LIMITATION" id="sub_opt12">DRAFT LIMITATION</option>
<option value="OTHER" id="sub_opt13">OTHER</option>
<option value="TERMINAL HANDLING" id="sub_opt14">TERMINAL HANDLING</option>
<option value="BOOKING" id="sub_opt15">BOOKING</option>
<option value="DOCUMENTATION" id="sub_opt16">DOCUMENTATION</option>
<option value="TELEX" id="sub_opt17">TELEX</option>
<option value="EXPORT DECLARATION (ENS, AMS, etc.)" id="sub_opt18">EXPORT DECLARATION (ENS, AMS, etc.)</option>
<option value="PORT CHARGE" id="sub_opt19">PORT CHARGE</option>
<option value="SECURITY" id="sub_opt20">SECURITY</option>
<option value="SEAL" id="sub_opt21">SEAL</option>
<option value="CONTAINER INSPECTION" id="sub_opt22">CONTAINER INSPECTION</option>
<option value="CONTAINER WEIGHTING" id="sub_opt23">CONTAINER WEIGHTING</option>
<option value="CIC/EBS" id="sub_opt24">CIC/EBS</option>
</select>
</div>
提醒一下,hardik prajapati的帖子在你尝试了几次后,并没有正确地重新设置选项。
发布于 2017-03-18 15:23:37
前面的答案不适用于多个选择,我已经修改了代码以匹配多个选择
$(".form-group:first option").click(function () {
var selecteds = $('option:selected', $(this).parent());
$secondFormGroup = $(".form-group:eq(1)");
$secondFormGroup.find("option").attr("disabled", false);
selecteds.each(function (i, el) {
var id = this.id.substr(7);
$('#inc_opt' + id).attr('disabled', true);
});
});<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<h4>Subject to </h4> <br>
<div class="form-group">
<label for="carrier">Charges * </label>
<select placeholder="Choose " class="form-control chosen-select" tabindex="2" name="subject_to[]" id="subject_to_id" width="40%"multiple>
<!-- chosen-select -->
<option value=""></option>
<option value="CURRENCY" id="sub_opt1">CURRENCY</option>
<option value="BUNKER" id="sub_opt2">BUNKER</option>
<option value="LOW SULFUR" id="sub_opt3">LOW SULFUR</option>
<option value="CANAL" id="sub_opt4">CANAL</option>
<option value="GULF" id="sub_opt5">GULF</option>
<option value="PIRACY" id="sub_opt6">PIRACY</option>
<option value="WAR RISK" id="sub_opt7">WAR RISK</option>
<option value="CONGESTION" id="sub_opt8">CONGESTION</option>
<option value="PEAK SEASON" id="sub_opt9">PEAK SEASON</option>
<option value="RATE INCREASE" id="sub_opt10">RATE INCREASE</option>
<option value="EMERGENCY" id="sub_opt11">EMERGENCY</option>
<option value="WINTER" id="sub_opt1">WINTER</option>
<option value="DRAFT LIMITATION" id="sub_opt12">DRAFT LIMITATION</option>
<option value="OTHER" id="sub_opt13">OTHER</option>
<option value="TERMINAL HANDLING" id="sub_opt14">TERMINAL HANDLING</option>
<option value="BOOKING" id="sub_opt15">BOOKING</option>
<option value="DOCUMENTATION" id="sub_opt16">DOCUMENTATION</option>
<option value="TELEX" id="sub_opt17">TELEX</option>
<option value="EXPORT DECLARATION (ENS, AMS, etc.)" id="sub_opt18">EXPORT DECLARATION (ENS, AMS, etc.)</option>
<option value="PORT CHARGE" id="sub_opt19">PORT CHARGE</option>
<option value="SECURITY" id="sub_opt20">SECURITY</option>
<option value="SEAL" id="sub_opt21">SEAL</option>
<option value="CONTAINER INSPECTION" id="sub_opt22">CONTAINER INSPECTION</option>
<option value="CONTAINER WEIGHTING" id="sub_opt23">CONTAINER WEIGHTING</option>
<option value="CIC/EBS" id="sub_opt24">CIC/EBS</option>
</select>
</div>
</div>
<div class="col-md-4">
<h4> Inclusive </h4> <br>
<div class="form-group">
<label for="inclusive"> Charges * </label>
<select placeholder="" class="form-control" tabindex="2" id="inclusive_id" name="inclusive[]" multiple>
<!-- chosen-select -->
<option value=""></option>
<option value="CURRENCY" id="inc_opt1">CURRENCY</option>
<option value="BUNKER" id="inc_opt2">BUNKER</option>
<option value="LOW SULFUR" id="inc_opt3">LOW SULFUR</option>
<option value="CANAL" id="inc_opt4">CANAL</option>
<option value="GULF" id="inc_opt5">GULF</option>
<option value="PIRACY" id="inc_opt6">PIRACY</option>
<option value="WAR RISK" id="inc_opt7">WAR RISK</option>
<option value="CONGESTION" id="inc_opt8">CONGESTION</option>
<option value="PEAK SEASON" id="inc_opt9">PEAK SEASON</option>
<option value="RATE INCREASE" id="inc_opt10">RATE INCREASE</option>
<option value="EMERGENCY" id="inc_opt11">EMERGENCY</option>
<option value="WINTER" id="inc_opt1">WINTER</option>
<option value="DRAFT LIMITATION" id="inc_opt12">DRAFT LIMITATION</option>
<option value="OTHER" id="inc_opt13">OTHER</option>
<option value="TERMINAL HANDLING" id="inc_opt14">TERMINAL HANDLING</option>
<option value="BOOKING" id="inc_opt15">BOOKING</option>
<option value="DOCUMENTATION" id="inc_opt16">DOCUMENTATION</option>
<option value="TELEX" id="inc_opt17">TELEX</option>
<option value="EXPORT DECLARATION (ENS, AMS, etc.)" id="inc_opt18">EXPORT DECLARATION (ENS, AMS, etc.)</option>
<option value="PORT CHARGE" id="inc_opt19">PORT CHARGE</option>
<option value="SECURITY" id="inc_opt20">SECURITY</option>
<option value="SEAL" id="inc_opt21">SEAL</option>
<option value="CONTAINER INSPECTION" id="inc_opt22">CONTAINER INSPECTION</option>
<option value="CONTAINER WEIGHTING" id="inc_opt23">CONTAINER WEIGHTING</option>
<option value="CIC/EBS" id="inc_opt24">CIC/EBS</option>
</select>
</div>
发布于 2017-03-18 14:11:52
在这两个select中,ID值在货币和冬季是相同的,我已经更改了它,并在脚本中将inc_id对象放入函数中。
$('#subject_to_id').on('change', function (e) {
var optionSelected = $("option:selected", this);
var idSelected = this.value;
var idSelected = $(this).children(":selected").attr("id");
var str = idSelected;
//alert(str + " "+str.length)
var inc_id = "#inc_" + str.substring(4, str.length);
//alert(inc_id);
$(inc_id).attr("disabled", "disabled");
});<script src="https://code.jquery.com/jquery-1.11.3.js"></script>
<div class="col-md-4">
<h4>Subject to </h4> <br>
<div class="form-group">
<label for="carrier">Charges * </label>
<select class="form-control chosen-select" tabindex="2" name="subject_to[]" id="subject_to_id" multiple >
<!-- chosen-select -->
<option value=""></option>
<option value="CURRENCY" id="sub_opt1">CURRENCY</option>
<option value="BUNKER" id="sub_opt2">BUNKER</option>
<option value="LOW SULFUR" id="sub_opt3">LOW SULFUR</option>
<option value="CANAL" id="sub_opt4">CANAL</option>
<option value="GULF" id="sub_opt5">GULF</option>
<option value="PIRACY" id="sub_opt6">PIRACY</option>
<option value="WAR RISK" id="sub_opt7">WAR RISK</option>
<option value="CONGESTION" id="sub_opt8">CONGESTION</option>
<option value="PEAK SEASON" id="sub_opt9">PEAK SEASON</option>
<option value="RATE INCREASE" id="sub_opt10">RATE INCREASE</option>
<option value="EMERGENCY" id="sub_opt11">EMERGENCY</option>
<option value="WINTER" id="sub_opt12">WINTER</option>
<option value="DRAFT LIMITATION" id="sub_opt13">DRAFT LIMITATION</option>
<option value="OTHER" id="sub_opt14">OTHER</option>
<option value="TERMINAL HANDLING" id="sub_opt15">TERMINAL HANDLING</option>
<option value="BOOKING" id="sub_opt16">BOOKING</option>
<option value="DOCUMENTATION" id="sub_opt17">DOCUMENTATION</option>
<option value="TELEX" id="sub_opt18">TELEX</option>
<option value="EXPORT DECLARATION (ENS, AMS, etc.)" id="sub_opt19">EXPORT DECLARATION (ENS, AMS, etc.)</option>
<option value="PORT CHARGE" id="sub_opt20">PORT CHARGE</option>
<option value="SECURITY" id="sub_opt21">SECURITY</option>
<option value="SEAL" id="sub_opt22">SEAL</option>
<option value="CONTAINER INSPECTION" id="sub_opt23">CONTAINER INSPECTION</option>
<option value="CONTAINER WEIGHTING" id="sub_opt24">CONTAINER WEIGHTING</option>
<option value="CIC/EBS" id="sub_opt25">CIC/EBS</option>
</select>
</div>
</div>
<div class="col-md-4">
<h4> Inclusive </h4> <br>
<div class="form-group">
<label for="inclusive"> Charges * </label>
<select class="form-control" tabindex="2" id="inclusive_id" name="inclusive[]" multiple>
<!-- chosen-select -->
<option value=""></option>
<option value="CURRENCY" id="inc_opt1">CURRENCY</option>
<option value="BUNKER" id="inc_opt2">BUNKER</option>
<option value="LOW SULFUR" id="inc_opt3">LOW SULFUR</option>
<option value="CANAL" id="inc_opt4">CANAL</option>
<option value="GULF" id="inc_opt5">GULF</option>
<option value="PIRACY" id="inc_opt6">PIRACY</option>
<option value="WAR RISK" id="inc_opt7">WAR RISK</option>
<option value="CONGESTION" id="inc_opt8">CONGESTION</option>
<option value="PEAK SEASON" id="inc_opt9">PEAK SEASON</option>
<option value="RATE INCREASE" id="inc_opt10">RATE INCREASE</option>
<option value="EMERGENCY" id="inc_opt11">EMERGENCY</option>
<option value="WINTER" id="inc_opt12">WINTER</option>
<option value="DRAFT LIMITATION" id="inc_opt13">DRAFT LIMITATION</option>
<option value="OTHER" id="inc_opt14">OTHER</option>
<option value="TERMINAL HANDLING" id="inc_opt15">TERMINAL HANDLING</option>
<option value="BOOKING" id="inc_opt16">BOOKING</option>
<option value="DOCUMENTATION" id="inc_opt17">DOCUMENTATION</option>
<option value="TELEX" id="inc_opt18">TELEX</option>
<option value="EXPORT DECLARATION (ENS, AMS, etc.)" id="inc_opt19">EXPORT DECLARATION (ENS, AMS, etc.)</option>
<option value="PORT CHARGE" id="inc_opt20">PORT CHARGE</option>
<option value="SECURITY" id="inc_opt21">SECURITY</option>
<option value="SEAL" id="inc_opt22">SEAL</option>
<option value="CONTAINER INSPECTION" id="inc_opt23">CONTAINER INSPECTION</option>
<option value="CONTAINER WEIGHTING" id="inc_opt24">CONTAINER WEIGHTING</option>
<option value="CIC/EBS" id="inc_opt25">CIC/EBS</option>
</select>
</div>
</div>
https://stackoverflow.com/questions/42870709
复制相似问题