我正在使用jquery克隆选择下拉列表,在下一个div中克隆下拉列表之后,下拉列表选项未启用,下拉列表被禁用,我在下面发布了我的代码,任何建议都得到了认可
<div id="dvlstBusinessUnitAndRoles">
<div class="row mt-5" id="dvRegion1">
<div class="col-xl-3">
<select class="mdb-select md-form colorful-select dropdown-primary" name="ddlProjectRegion" id="ddlProjectRegion1">
<option value="" disabled selected>Select Region(s)</option>
</select>
<label>Select Region(s)</label>
</div>
<div class="col-xl-3">
<select class="mdb-select md-form colorful-select dropdown-primary" name="ddlRoles" id="ddlRoles1">
<option value="" disabled selected>Select Role(s) </option>
</select>
<label>Select Role(s)</label>
</div>
<div class="col-xl-3">
<div class="pt-4">
<input type="checkbox" class="form-check-input" id="limitaccess">
<label class="form-check-label" for="limitaccess"> Primary Region </label>
<a href="#" id="hrefRegion" onclick="AddNewRow();" class="note"> <img id="imgNewRow" src="~/Content/images/plus-g.png" /></a>
</div>
</div>
</div>
</div>
这是我用于克隆选择下拉列表的功能
function AddNewRow() {
var imgSource = '/Content/images/cross-g.png';
var count = $("div [id^='dvRegion']").length + 1;
var newId = 'dvRegion' + count;
var newddlRegionId = 'ddlProjectRegion' + count;
var newddlRoleId = 'ddlRoles' + count;
var chkId = 'limitaccess' + count;
$('<div/>', {
id: newId,
class: 'row mt-5'
}).appendTo('#dvlstBusinessUnitAndRoles');
$('#dvlstBusinessUnitAndRoles').children().last().replaceWith($("#dvRegion1").clone(true));
$('#dvlstBusinessUnitAndRoles').children().last().attr('id', newId);
$('#dvlstBusinessUnitAndRoles').children().eq(count - 1).find('a').attr('onclick', 'DeleteRow("' + newId + '")');
$('#dvlstBusinessUnitAndRoles').children().eq(count - 1).find('input[type=text],select').attr('data-activates', newddlRegionId);
$('#dvlstBusinessUnitAndRoles').children().eq(count - 1).find('[name="ddlProjectRegion"]').attr('id', newddlRegionId);
$('#dvlstBusinessUnitAndRoles').children().eq(count - 1).find('[name="ddlProjectRegion"]').attr('name', newddlRegionId);
$('#dvlstBusinessUnitAndRoles').children().eq(count - 1).find('[name="ddlRoles"]').attr('id', newddlRoleId);
$('#dvlstBusinessUnitAndRoles').children().eq(count - 1).find('[name="ddlRoles"]').attr('name', newddlRoleId);
$('#dvlstBusinessUnitAndRoles').children().eq(count - 1).find(('li')).parent().attr('id', newddlRegionId);
$('#dvlstBusinessUnitAndRoles').children().eq(count - 1).find("#imgNewRow").attr("src", imgSource);
$('#dvlstBusinessUnitAndRoles').children().eq(count - 1).find("#imgNewRow").attr("id", 'imgDelete');
$('#dvlstBusinessUnitAndRoles').children().eq(count - 1).find('#limitaccess').attr('id', chkId);
$('#dvlstBusinessUnitAndRoles').children().eq(count - 1).find('.form-check-label').attr('for', chkId);
$("html, body").animate({ scrollTop: $(document).height() }, 1000);
}
答案 0 :(得分:0)
我正在使用mdbootstrap select下拉列表,因此克隆后我必须 套用后,将materialSelect属性套用至克隆的下拉式选单 属性,它工作正常,下面我发布了代码
function AddNewRow() {
var imgSource = '/Content/images/cross-g.png';
var count = $("div [id^='dvRegion']").length + 1;
var newId = 'dvRegion' + count;
var newddlRegionId = 'ddlProjectRegion' + count;
var newddlRoleId = 'ddlRoles' + count;
var chkId = 'limitaccess' + count;
$('<div/>', {
id: newId,
class: 'row mt-5'
}).appendTo('#dvlstBusinessUnitAndRoles');
$('#dvlstBusinessUnitAndRoles').children().last().replaceWith($("#dvRegion1").clone(true));
$('#dvlstBusinessUnitAndRoles').children().last().attr('id', newId);
$('#dvlstBusinessUnitAndRoles').children().eq(count - 1).find('a').attr('onclick', 'DeleteRow("' + newId + '")');
$('#dvlstBusinessUnitAndRoles').children().eq(count - 1).find('input[type=text],select').attr('data-activates', newddlRegionId);
$('#dvlstBusinessUnitAndRoles').children().eq(count - 1).find('[name="ddlProjectRegion"]').attr('id', newddlRegionId);
$('#dvlstBusinessUnitAndRoles').children().eq(count - 1).find('[name="ddlProjectRegion"]').attr('name', newddlRegionId);
$('#dvlstBusinessUnitAndRoles').children().eq(count - 1).find('[name="ddlRoles"]').attr('id', newddlRoleId);
$('#dvlstBusinessUnitAndRoles').children().eq(count - 1).find('[name="ddlRoles"]').attr('name', newddlRoleId);
$('#dvlstBusinessUnitAndRoles').children().eq(count - 1).find(('li')).parent().attr('id', newddlRegionId);
$('#dvlstBusinessUnitAndRoles').children().eq(count - 1).find("#imgNewRow").attr("src", imgSource);
$('#dvlstBusinessUnitAndRoles').children().eq(count - 1).find("#imgNewRow").attr("id", 'imgDelete');
$('#dvlstBusinessUnitAndRoles').children().eq(count - 1).find('#limitaccess1').attr('id', chkId);
$('#dvlstBusinessUnitAndRoles').children().eq(count - 1).find('.form-check-label').attr('for', chkId);
$('#dvlstBusinessUnitAndRoles').children().eq(count - 1).find('.mdb-select').materialSelect('destroy');
$('#dvlstBusinessUnitAndRoles').children().eq(count - 1).find('.mdb-select').materialSelect();
$('#dvRegion1').find('.mdb-select').materialSelect('destroy');
$('#dvRegion1').find('.mdb-select').materialSelect();
$("html, body").animate({ scrollTop: $(document).height() }, 1000);
}