【问题标题】:Jquery select2 - How to disable options in one dropdown without affecting all other dropdowns?Jquery select2 - 如何在一个下拉列表中禁用选项而不影响所有其他下拉列表?
【发布时间】:2021-09-03 20:36:56
【问题描述】:

这就是我正在做的:

$('select').each(function () {
        var selectedValue = $(this).find('option:selected').val();
        if (selectedValue !== '0') {
            $('option').each(function () {
                if (!this.selected) {
                    $(this).attr('disabled', true);
                }
            });
        }
    });

第一个选项是“-Select an option-”,其值为“0”,这就是我进行验证的原因。基本上我想要做的是禁用下拉列表中的所有选项,这些选项的选定值与第一个不同。所有下拉菜单都已使用 jquery 的 select2 进行了初始化,并且每个下拉菜单都有一个唯一的 id。

我共享的代码无法正常工作,因为无论是否未选择任何选项,我都会在每个下拉菜单中禁用选项。

谁能帮我解决这个问题?

【问题讨论】:

  • 您的意思是要禁用所选值为0的所选选项之外的所有选项?为什么不尝试在选定的值为0时禁用if ($(this).val() != '0') { $(this).prop("disabled", true);}? span>

标签: javascript jquery asp.net-core razor jquery-select2


【解决方案1】:

我没有测试,但你应该替换这一行:

$('option').each(function () {

用这个:

$(this).find('option').each(function () {

此外,您应该使用更改事件调用此函数,这意味着在选择某些选项时触发,如下所示:

$('select').on('change', function() {

事情是这样的:

$('select').each(function () {
$('option').each(function () {

您正在遍历所有选择元素及其所有选项,而不是遍历唯一被单击的选择元素

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-09-28
    • 1970-01-01
    • 2016-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多