【问题标题】:Dynamic Dropdown using semantic ui使用语义 ui 的动态下拉菜单
【发布时间】:2019-05-29 20:59:51
【问题描述】:

遇到了语义 UI 下拉菜单的问题。我一直在使用 Semantic-Ui,并希望动态更改下拉项。也就是说,当我从第一个下拉列表中选择值时,第二个下拉列表的项目没有得到反映。

这里是sn-p的代码:

$(document).ready(function() {
  $("#programmetype").dropdown({
    onChange: function() {

      $('#servicetype').html(
        '<div class="ui selection dropdown select- 
        language ">'+'<div class="
        text ">Choose..</div>'+'<i class="
        dropdown icon "></i>'+' <div class="
        menu ">'+


        '<div class="item" data-value="acp">ACP</div>' +
        '<div class="item" data- 
        value = "art" > ART < /div>'+'</div > '+' < /div>'
      );
      $('#servicetype').dropdown();
    }

  });
});
<script src="https://code.jquery.com/jquery-3.1.1.min.js" crossorigin="anonymous"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/semantic-ui@2.4.2/dist/semantic.min.css">
<script src="https://cdn.jsdelivr.net/npm/semantic-ui@2.4.2/dist/semantic.min.js"></script>


<div id="programmetype" class="ui selection dropdown select- 
        language">
  <input type="hidden" name="programmetype">
  <div class="text">Choose..</div>
  <i class="dropdown icon"></i>
  <div class="menu">
    <div class="item" data-value="val1">Car</div>
    <div class="item" data-value="val2">Tank</div>
    <div class="item" data-value="val3">Plane</div>
  </div>
</div>

<div id="servicetype"></div>

【问题讨论】:

  • 您的代码有语法错误,在您的 .html() 方法中,您的字符串未正确连接。检查那里并修复内部内容语法

标签: javascript html semantic-ui


【解决方案1】:

语法错误

您在strings 内进行换行,使用+ 运算符正确换行,您的脚本不会发现语法错误,因此您的代码应该运行。

第二个下拉菜单

关于第二个下拉菜单。你错过了一些东西。查看第一个下拉 DOM 结构。父元素 #programmetype 具有类 ui selection dropdown select-language 以便应用 CSS。

但是对于您的#servicetype,您没有这些类并且您从未添加它们,因此在您的第一个下拉列表的onChange 中添加这些类,(检查脚本)

另外,您需要一个隐藏的input 来保存您错过的数据。但它存在于第一个下拉列表中。检查sn-p,我已经添加了。

希望这会有所帮助。

检查下面的sn-p:

$(document).ready(function() {
  $("#programmetype").dropdown({
    onChange: function() {

      $('#servicetype').addClass('ui selection dropdown select-language'); // add these classes for the UI.
      $('#servicetype').html(
        '<input type="hidden" name="servicetype">' // you need a hidden input and the rest is fine
        +'<div class="text">Choose..</div>'
        +'<i class="dropdown icon "></i>'
        +'<div class="menu">'
        +'<div class="item" data-value="acp">ACP</div>'
        +'<div class="item" data-value="art"> ART</div>'
        +'</div>'
        +'</div>'
      );
      $('#servicetype').dropdown();
    }

  });
});
<script src="https://code.jquery.com/jquery-3.1.1.min.js" crossorigin="anonymous"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/semantic-ui@2.4.2/dist/semantic.min.css">
<script src="https://cdn.jsdelivr.net/npm/semantic-ui@2.4.2/dist/semantic.min.js"></script>


<div id="programmetype" class="ui selection dropdown select-language">
  <input type="hidden" name="programmetype">
  <div class="text">Choose..</div>
  <i class="dropdown icon"></i>
  <div class="menu">
    <div class="item" data-value="val1">Car</div>
    <div class="item" data-value="val2">Tank</div>
    <div class="item" data-value="val3">Plane</div>
  </div>
</div>

<div id="servicetype"></div>

【讨论】:

  • 嗨 Towkir,第二个下拉菜单没有打开
  • 你能帮我解决这个问题吗
  • @TejashwiniShankar 现在检查,答案已编辑,如果有帮助,请随时为答案投票。谢谢。
  • 第二个下拉菜单打不开你能帮我吗
  • 我可以看到第二个下拉菜单在上面的 sn-p 上运行良好。你家发生什么事了?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多