当前位置: 首页 > 知识库问答 >
问题:

一次只能选择一个下拉列表

汪文光
2023-03-14

我是一个全新的领域,我现在有两个独立的下拉菜单。我正在尝试使用户能够在同一时间只能从两者中的一个进行选择。例如,如果用户从下拉列表1中选择某项内容,然后从下拉列表2中选择另一项内容,则下拉列表1变为未选中。

下面是我在html部分中的片段

<div id="d1" class="wrapper-dropdown-5 active" tabindex="1">
  <span>DropDown 1</span>
  <ul class="dropdown">
    <li>...</li>
    <li><a href="#"><img src="" alt=""/>Car 1</a></li>
    <li><a href="#"><img src="" alt=""/>Car 2</a></li>
  </ul>
</div>

<div id="d2" class="wrapper-dropdown-5 bottom" tabindex="1">
   <span>Dropdown 2</span>
  <div>
  <ul class="dropdown">  
    <li>...</li>
    <li><a href="#"> <img src="" alt=""/>Truck 1</a></li>
    <li><a href="#"> <img src="" alt=""/>Truck 2</a></li>
  </ul>
  </div>
</div>

这里是JS

  function DropDown(el) {

      this.dd = el;
      this.placeholder = this.dd.children('span');
      this.opts = this.dd.find('ul.dropdown > li');
      this.val = '';
      this.index = -1;
      this.initEvents();

  }

  DropDown.prototype = {

      initEvents : function() {
      var obj = this;
          obj.dd.on('click', function(event){

          $(this).toggleClass('active');
          return false;

          });

          obj.opts.on('click',function(){
             var opt = $(this);
              obj.val = opt.text();
              obj.index = opt.index();
              obj.placeholder.text(obj.val);

          });
      },

      getValue : function() {
              return this.val;
      },

      getIndex : function() {
            return this.index;
      }

      }

      $(function() {
          var dd = new DropDown( $('#d1') );

          $(document).click(function() {
          $('.wrapper-dropdown-5').removeClass('active');

          });
      });

        $(function() {
                    var dd = new DropDown( $('#d2') );

          $(document).click(function() {
              $('.wrapper-dropdown-5').removeClass('active');
          });
        });

这是一个简单的演示。你可以注意到你可以同时选择一辆汽车和一辆卡车。此时应仅为汽车或卡车:https://jsfidle.net/j82ryu5k/2/

共有1个答案

杜彦君
2023-03-14

也许像这样的小提琴对你有用。

HTML:

<div class="container">
    <div class="row">
        <div class="col-md-5">
            <div id="d1" class="wrapper-dropdown-5 active" tabindex="1">
                <span data-text="Коли">Коли</span>
                <ul class="dropdown">
                    <li>...</li>
                    <li>
                        <a href="#"><img src="" alt="" />Кола 1</a>
                    </li>
                    <li>
                        <a href="#"><img src="" alt="" />Кола 2</a>
                    </li>
                </ul>
            </div>
            <div id="d2" class="wrapper-dropdown-5 bottom" tabindex="1">
                <span data-text="Камиони">Камиони</span>
                <div>
                    <ul class="dropdown">
                        <li>...</li>
                        <li>
                            <a href="#"> <img src="" alt="" />Камион 1</a>
                        </li>
                        <li>
                            <a href="#"> <img src="" alt="" />Камион 2</a>
                        </li>
                    </ul>
                </div>
            </div>
        </div>
    </div>
</div>

脚本:

function DropDown(el) {
    this.dd = el;
    this.placeholder = this.dd.children('span');
    this.opts = this.dd.find('ul.dropdown > li');
    this.val = '';
    this.index = -1;
    this.initEvents();
}

DropDown.prototype = {

initEvents : function() {
    var obj = this;
    obj.dd.on('click', function(event){
        $(this).toggleClass('active');
        return false;
    });

    obj.opts.on('click',function(){
        var opt = $(this);
        $('div > span').not(opt).each(function() {
            $(this).text($(this).data('text'));
        });
        obj.val = opt.text();
        obj.index = opt.index();
        obj.placeholder.text(obj.val);
    });
},

getValue : function() {
    return this.val;
},

getIndex : function() {
    return this.index;
}

}

$(function() {
    var dd = new DropDown( $('#d1') );

    $(document).click(function() {
        $('.wrapper-dropdown-5').removeClass('active');
    });
});

$(function() {
    var dd = new DropDown( $('#d2') );

    $(document).click(function() {
        $('.wrapper-dropdown-5').removeClass('active');
    });
});
 类似资料:
  • 我想在选择另一个select元素的一个选项时显示一个select元素,在选择另一个选项时隐藏它。 这是JavaScript: 感谢任何帮助。谢谢

  • 问题内容: 我想创建两个下拉列表,类别和项目。 如果我选择名为car的类别之一,则项目下拉列表应包含Honda,Volvo和Nissan。 如果我选择一个名为phone的类别,则项目下拉列表应具有此iPhone,Samsung,Nokia。 我怎样才能做到这一点?我知道我无法使用纯HTML做到这一点。 问题答案: 工作演示 (带有jquery) 更新 :使用eval()能够添加所需的任意数量的数组

  • 我正在使用Protractor运行一个自动脚本,其中一个页面上有两个下拉菜单,它们位于彼此的下方/上方。这两个似乎完全相同,只是它们有不同的ng模型名称等。我可以从一个下拉菜单中成功地选择一个元素,但我不能为另一个选择。这有点让我头疼,为什么一个有效,另一个无效。下面是我可以选择元素的下拉菜单的代码 我的另一个下拉菜单如下: 当我试图从第二个下拉菜单中选择一个项目时,我得到了“element no

  • 问题内容: 下面给出的是一段代码,表示下拉列表。我需要在此下拉列表中选择 日期 值,表示为 遵循方法无效。 1.)使用“ 选择” 通过导入 org.openqa.selenium.support.ui.Select* 选择此值 * 控制台显示: 元素应该是“选择”但是“选项” 2.)首先单击下拉菜单以显示要选择的选项,然后单击该选项。 控制台显示: DEBUG元素缺少可访问的名称:id:类型,ta

  • 根据第一个下拉列表项选择,我希望第二个下拉列表应该包含相关内容。在Java怎么能这样?例如,假设第一个下拉列表包含国家名称,第二个下拉列表包含国家名称。如果我从第一个下拉列表中选择一个特定的国家,比如“印度”,那么第二个列表应该只显示国家的相关邦,即“印度”的邦。并且这两个列表都是动态的。

  • 我刚接触硒 我的脚本是: > 打开一个网站 单击一个按钮,然后打开转到另一个网站。 新网站将显示一个下拉列表,我需要从列表中选择一个选项 但是我失败了。 日志上说: 元素id=未找到主角色 我尝试将目标更改为详细的HTML元素,如< code >//HTML/frameset/frame/HTML/body/form/table/tbody/tr/TD/div[@ id = ' client ba