Jquery禁用所选选项

时间:2016-04-25 12:55:08

标签: javascript jquery

我试图应用这个fiddle解决方案,但没有任何运气:(

$('.select').on('keyup change', function () {
    var selected = [];
    $(".select option:selected").each(function () {
        if ($(this).val() !== "") selected.push($(this).val());
    });
    $(".select:not(this) option").each(function () {
        if (selected.indexOf($(this).val()) > -1) $(this).prop("disabled", true);
        else $(this).prop("disabled", false);
    });
});

我想禁用之前所选列表中的所有选定项目。

2 个答案:

答案 0 :(得分:1)

由于您要动态添加选择列表并使用keyup和更改事件,因此无法正常工作,您需要使用委派:

$(document).on('keyup change', '.select', function () {
    var selected = [];
    $(".select option:selected").each(function () {
        if ($(this).val() !== "") selected.push($(this).val());
    });
    $(".select:not(this) option").each(function () {
        if (selected.indexOf($(this).val()) > -1) $(this).prop("disabled", true);
        else $(this).prop("disabled", false);
    });
});

看小提琴: https://jsfiddle.net/wfaaztnb/8/

答案 1 :(得分:1)

只需将选择器$('.select')替换为$(document)就可以了! :)