在使用Semantic UI框架时,我正在处理一个可以动态添加多个项目的表单。
这些项目的形式是我需要监听更改的下拉菜单。这适用于加载页面时初始化的下拉菜单,但不适用于动态添加的下拉菜单。
为了解决我的问题,我创建了这个JSFiddle:https://jsfiddle.net/e7q1shyv/1/
似乎语义UI下拉菜单未更新<select>
。
我已经尝试查看文档并进行了搜索,但无法找到任何相关信息。
感谢您解决此问题的任何想法!
答案 0 :(得分:1)
检查工作代码。
.ui.button {
margin-top: 50px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.2.1/semantic.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.2.1/semantic.js"></script>
<div class="selects">
<select class="ui dropdown">
<option>Option 1</option>
<option>Option 2</option>
</select>
</div>
<button class="ui button">Add select</button>
<p>Value changed: <span></span></p>
valu = $(this).val();
你所做的只是获取select元素的值,所以它每次都会在dom中获取select的第一个实例的值。
如果你在写var D
时给出当前元素的值,它将获取当前元素的值。
这是您更新的jsfiddle链接。
答案 1 :(得分:1)
只需更改$('select')
的{{1}},就像下面这样,并且效果很好:
$(this)
答案 2 :(得分:1)
此行中有错误。
$(document).on('change', 'select', function(){
$('span').html($('select').val())
});
在这里,您可以选择&#39;选择&#39;它将始终对应于您选择类中的第一个选择元素。将其更改为$ this以获取当前实例值。
您的代码将更改为
$(document).on('change', 'select', function(){
$('span').html($(this).val())
});
工作小提琴 - https://jsfiddle.net/e7q1shyv/3/