[英]hide dropdown option on change of another dropdown option
I have tried this, but not working fine. 我已经尝试过了,但是不能正常工作。 HTML:
HTML:
<div>
<select id="color" name="color" onchange="myFunction()">
<option value=""> choose options </option>
<option value="1">AB</option>
<option value="2">ABC</option>
<option value="3">ABCD</option>
</select>
<select id="size" name="size" >
<option value=""> choose options </option>
<option value="3" class="27">Apple </option>
<option value="2" class="26">Orange</option>
<option value="2" class="26">Orange</option>
<option value="2" class="26">Orange</option>
<option value="3" class="28">Grapes</option>
</select>
</div>
SCRIPT: 脚本:
function myFunction()
{
$variable=$("#size").html();
$("#size").html($variable);
var val=$("#color").find(":selected").val();
$("#size option[value!="+val+"]").remove();
}
in place of .remove() I tried .hide() which seems to be not working. 代替.remove(),我尝试了.hide(),这似乎不起作用。 Could anyone help me out with this?
有人可以帮我吗?
You can make a mix of JS and CSS. 您可以混合使用JS和CSS。
So we "reset" the size select, by removing all the disabled
and also the selected
. 所以我们“复位”的大小进行选择,通过删除所有的
disabled
,也是selected
。
Something like this: 像这样:
$(document).ready(function () { var colors = $('#color'), size = $('#size'); colors.change(function () { var val = $(this).find(":selected").val(); size.find('option').removeAttr('disabled'); size.find('option:selected').removeAttr('selected'); size.find("option[value!=" + val + "]").attr('disabled', 'disabled'); }) })
option:disabled { display: none; } option:first-child { display: block; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div> <select id="color" name="color"> <option value="">choose options</option> <option value="1">AB</option> <option value="2">ABC</option> <option value="3">ABCD</option> </select> <select id="size" name="size"> <option value="">choose options</option> <option value="3" class="27">Apple</option> <option value="2" class="26">Orange</option> <option value="2" class="26">Orange</option> <option value="2" class="26">Orange</option> <option value="3" class="28">Grapes</option> </select> </div>
Using data-group
instead of class
or value
使用
data-group
代替class
或value
$(document).ready(function () { var colors = $('#color'), size = $('#size'); colors.change(function () { var val = $(this).find(":selected").attr('data-group'); size.find('option').removeAttr('disabled'); size.find('option:selected').removeAttr('selected'); size.find("option[data-group!=" + val + "]").attr('disabled', 'disabled'); }) })
option:disabled { display: none; } option:first-child { display: block; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div> <select id="color" name="color"> <option value="">choose options</option> <option value="1" data-group="1">AB</option> <option value="2" data-group="2">ABC</option> <option value="3" data-group="3">ABCD</option> </select> <select id="size" name="size"> <option value="">choose options</option> <option value="3" class="27" data-group="3">Apple</option> <option value="2" class="26" data-group="2">Orange</option> <option value="2" class="26" data-group="2">Orange</option> <option value="2" class="26" data-group="2">Orange</option> <option value="3" class="28" data-group="3">Grapes</option> </select> </div>
You should show all options before hide. 隐藏之前,您应该显示所有选项。
function myFunction() { $variable=$("#size").html(); $("#size").html($variable); var val=$("#color").find(":selected").val(); $("#size option").show(); $("#size option[value!="+val+"]").hide(); }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <div> <select id="color" name="color" onchange="myFunction()"> <option value=""> choose options </option> <option value="1">AB</option> <option value="2">ABC</option> <option value="3">ABCD</option> </select> <select id="size" name="size" > <option value=""> choose options </option> <option value="3" class="27">Apple </option> <option value="2" class="26">Orange</option> <option value="2" class="26">Orange</option> <option value="2" class="26">Orange</option> <option value="3" class="28">Grapes</option> </select> </div>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.