如何在JS / JQ的第一选择条件下隐藏第二选项
How to hide second option in condition of first selection with JS / JQ?
我遇到如下问题,不知道如何解决。(
我想禁用与颜色选择相关的/灰化选项。每个选项都有一个唯一的值。
例如:- 衬衫(绿色)只在XS有售。
- 衬衫(蓝色)有S、m两种颜色可选
- 衬衫(黄色)无L和XL款。
是否有可能使用"if"或数组函数?有代码被剪掉了吗?
感谢您的帮助,并为我不存在的JS知识感到抱歉!
<form id="test" name="test" method="post" action="">
<label for="test"></label>
<select name="color" id="color">
<option value="1">---Select color---</option>
<option value="2">T-Shirt - green</option>
<option value="3">T-Shirt - blue</option>
<option value="4">T-Shirt - yellow</option>
</select>
<br />
<select name="size" id="size">
<option value="5">---Select size---</option>
<option value="6">XS</option>
<option value="7">S</option>
<option value="8">M</option>
<option value="9">L</option>
<option value="10">XL</option>
</select>
</form>
var sizes_avail = {
'2': ['6'],
'3': ['7', '8'],
'4': ['9', '10']
};
$("#color").change(function() {
var color = $(this).val();
if (sizes_avail.hasOwnKey(color)) {
$("#size option").attr("disabled", true);
$.each(sizes_avail[color], function(i, size) {
$("#size option["+size+"]").attr("disabled", false);
}
} else {
$("#size option").attr("disabled", false);
}
}
在jQuery中使用.onChange
函数和开关非常简单。
假设您可以设置一个捕获有效颜色和大小的对象,然后您可以迭代所有<option>
元素,根据选项的值是否在允许的大小集合中设置disabled属性。
var availableSizesForColors = {
'2': ['6'],
'3': ['7', '8'],
'4': ['9', '10']
};
// bind the function to the JavaScript 'change' event
$('#color').change(function() {
// look up the available colours in the object above for the given value of the shirt colour drop down
var availableSizes = availableSizesForColors[this.options[this.selectedIndex].value];
// set disabled = true or false if the size option is or is not in the availableSizes array
$('#size option').prop('disabled', function () { return $.inArray(this.value, availableSizes) == -1 });
});
<<p> jsFiddle演示/strong> 注意:如果你关心jQuert $.inArray
函数的性能,你可能想使用不同的"数组包含"方法-参见我如何检查数组是否包含JavaScript中的对象?
相关文章:
- html+javascript:如何在某些条件下禁用dropdownlist中的null选项
- 在特定条件下从存储在localStorage中的阵列中删除对象
- 如何在一定条件下使必填字段为真
- 如何在特定条件下完全禁用FullPage.js
- 在条件下使用 slideUp() 和 slideDown()
- 停止计算以在特定条件下更新
- 选择的下拉列表:使search_contains同时适用于所有下拉列表
- 如何加载特定天气条件下的图标?(AngularJS)
- 比较IF条件下的两个javascript数值
- 选择后下拉菜单的灯箱效果
- 使用 jquery 在选择器下获取元素
- ComboBox typeAhead有效,但在某些行为条件下valueField为空
- 返回三元条件下的新promise Q
- 如何从另一个下拉列表中隐藏选择基于下拉列表的值
- 在选择其他下拉列表html和javascript araray的基础上,填充3个连续的下拉列表
- jqgrid在条件下动态设置单元格可编辑false
- 启动日期选择器在条件下禁用和启用
- 在至少选择一个下拉选项的条件下提交表单
- javascript中的条件下拉菜单,选择器出现问题
- 如何在JS / JQ的第一选择条件下隐藏第二选项