有个需求需要通过js添加多个动态下拉框,但是在js中拼接追加出来的下拉框没有点击效果获取不到下拉框数据,搜了好多查到了一个方法,在此记录一下
<div id="form-group-example">
</div>
<div class="form-group div2" style="display: none">
<label class="control-label col-xs-12 col-sm-2">配料:</label>
<div class="col-xs-12 col-sm-4">
<input id="" name ="" min="0" data-order-by="id desc" data-source="goods/index" data-field="goodname" class="form-control selectpage selectdisabled" type="text">
</div>
<div class="col-xs-12 col-sm-4">
<input class="form-control" placeholder="请输入数量" name="" type="number">
</div>
</div>
$('#btn-compose').click(function(){
var num = $('#c-nums').val();
var str ="<div class=\"form-group div2\" >"+$(".div2").html()+"</div >";
for(var i=0; i<num; i++) {
$('#form-group-example').append(str);
}
var count = 0;
$('#form-group-example .div2').each(function (){
$(this).find("input:eq(0)").attr("id","inputaa"+count);
$(this).find("input:eq(0)").attr("name","row[compose][goodsid]["+count+"]");
$(this).find("input:eq(2)").attr("name","row[compose][nums]["+count+"]");
require(['selectpage'], function () {
$("#inputaa"+count).selectPage({
eAjaxSuccess: function (data) {
data.list = typeof data.rows !== 'undefined' ? data.rows : (typeof data.list !== 'undefined' ? data.list : []);
data.totalRow = typeof data.total !== 'undefined' ? data.total : (typeof data.totalRow !== 'undefined' ? data.totalRow : data.list.length);
return data;
}
});
});
count++;
});
Form.events.selectpage($('form'));
});