javascript - 使用 JS 或 JQuery 的多个条件/禁用选择选项?

标签 javascript jquery

根据这个 fiddle ( http://jsfiddle.net/Qu44s/ ) 我正在尝试设置比 2 个选择字段更多的条件 -> http://jsfiddle.net/tet8M/但不知道该怎么做。 :(

例如:

Green -> XS -> Femal -> V-Neck, U-Neck

Blue -> S, M -> Male, Female -> V-Neck

Yellow -> L, XL -> unisex -> short-arms, long-arms

对不起,我绝对不适合JS或JQ, 但也许有人知道如何解决这个问题。

感谢您的帮助!

最佳答案

只需扩展您拥有的内容并禁用不相关的选项。

参见 DEMO .

var availableSizesForColors = {
    '2': ['6'],
    '3': ['7', '8'],
    '4': ['9', '10']
};

var availableGendersForColors = {
    '2': ['13'],
    '3': ['12', '13'],
    '4': ['14']
};

var availableExtrasForColors = {
    '2': ['18', '19'],
    '3': ['18'],
    '4': ['16', '17']
};

$('#color').change(function() {
    var availableSizes = availableSizesForColors[this.options[this.selectedIndex].value];
    var availableGenders = availableGendersForColors[this.options[this.selectedIndex].value];
    var availableExtras = availableExtrasForColors[this.options[this.selectedIndex].value];
    $('#size option').prop('disabled', function () { return $.inArray(this.value, availableSizes) == -1 });
    $('#sex option').prop('disabled', function () { return $.inArray(this.value, availableGenders) == -1 });
    $('#extra option').prop('disabled', function () { return $.inArray(this.value, availableExtras) == -1 });
});

如果未选择 color,则禁用表单的其余部分。

$('#color').change(function() {
    $('#size').val('5');
    $('#sex').val('11');
    $('#extra').val('15');
    if (this.options[this.selectedIndex].value == 1) {
        $('#size,#sex,#extra').attr("disabled", "disabled");
    } else {
        $('#size,#sex,#extra').removeAttr("disabled");
    }
});
$('#color').trigger('change');

关于javascript - 使用 JS 或 JQuery 的多个条件/禁用选择选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14678846/

相关文章:

javascript - 基于项目数组的 Select2 选择顺序

javascript - 在 jquery 插件中使用 return on

javascript - 如何强制用户在 javascript 提示符中输入值?

javascript - 使用 window.onload 时 Bootstrap 轮播不会自动开始滑动

javascript - 如何使用react和node将字符串作为文件上传到谷歌驱动器

asp.net - 客户端IP地址

javascript - 如何手动触发 onchange 事件?

javascript - 如何在调整窗口大小时自动调整页面大小

jQuery 不触发附加项

javascript - 如何在不调用 onBlur 事件的情况下强制模糊