为了账号安全,请及时绑定邮箱和手机立即绑定

使用Java禁用某些下拉输入字段时出现问题

使用Java禁用某些下拉输入字段时出现问题

婷婷同学_ 2021-05-14 14:39:40
我正在开发一个应用程序,在该应用程序中,我有一些具有选择下拉字段的卡。在Cards上,我编写了JavaScript逻辑,如果用户在任何Cards select下拉菜单中选择了妻子或丈夫作为选项,则其他丈夫或妻子下拉列表中的任何字段都应添加CSS类disable。问题是CSS类别没有添加在与丈夫或妻子匹配的卡片上的其他选项上。基本上,我希望当用户在任何卡上选择“妻子或丈夫”选项时,其他卡上的所有其他丈夫或妻子选项都应更改要禁用的类(指针指向无)。我的代码:var menus = document.querySelectorAll('.otherMenu');for (let menu of menus) {  menu.addEventListener('change', function() {    var selectedOption = this.value;    var selectWife = document.querySelectorAll('.otherMenu option[value="Wife"]');    var selectHusband = document.querySelectorAll('.otherMenu option[value="Husband"]');    selectWife.forEach(function(option) {      var change1 = option.classList.add('disabled');      change = selectedOption === 'Wife';    });    selectHusband.forEach(function(option) {      var change2 = option.classList.add('disabled');      change2 = selectedOption === 'Husband';    });  });}.disabled {  pointer-events: none;  opacity: 0.5;  color: blue;}
查看完整描述

1 回答

?
慕勒3428872

TA贡献1848条经验 获得超6个赞

根据Maaz链接问题,您无法设置单个option元素的样式(color/除外background-color)。但是,对于此用例,您不需要,它option具有disabled可以满足您需要的属性:禁用选择并淡入选项。


Javascript:


var menus = document.querySelectorAll('.otherMenu');

for (let menu of menus) {

  menu.addEventListener('change', function() {

    var selectedOption = this.value;

    var thisMenu = this;

    var selectWife = document.querySelectorAll('.otherMenu option[value="Wife"]');

    var selectHusband = document.querySelectorAll('.otherMenu option[value="Husband"]');

    selectWife.forEach(function(option) {

      if(!(thisMenu === option.parentNode)){

        if(selectedOption === 'Wife'){

            option.disabled = true;

        }

      }

    });

    selectHusband.forEach(function(option) {

      if(!(thisMenu === option.parentNode)){

        if(selectedOption === 'Husband'){

            option.disabled = true;

        }

      }

    });

  });

}

CSS:


.other-menu option:disabled {

  color: blue;

}

注意:您在otherMenu类中分配了不正确的类,并没有正确地将它们放置在HTML中,建议在进行选择之前先使用占位符值,如下面的JSFiddle所示


查看完整回答
反对 回复 2021-05-20
  • 1 回答
  • 0 关注
  • 164 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信