javascript - 如何在单击按钮时附加多个下拉列表,每个下拉列表在名称属性中具有不同的索引?

标签 javascript jquery asp.net-mvc razor

我正在尝试在单击按钮时附加多个下拉列表。这些下拉列表应在其“名称”属性中具有正确的索引。

这是下拉菜单:-

<div id="dropdownDiv" style="display:none">
    <div class="form-group">
        @Html.LabelFor(model => model.PropertyInvestors, htmlAttributes: new { @class = "control-label col-md-2" })
        <div class="col-md-10">
            @Html.DropDownListFor(model => model.PropertyInvestors, (IEnumerable<SelectListItem>)@ViewBag.Investors, "Select Investor", htmlAttributes: new { @id = "dropdown",@name= "[#].PropertyInvestors", @class = "form-control",@onChange="dropdownChange()" })
            @Html.ValidationMessageFor(model => model.PropertyInvestors, "", new { @class = "text-danger" })
        </div>
    </div>
</div> 

这是我尝试克隆下拉列表并将其名称属性替换为所需索引的 JS 代码。

$('#addDropdown').click(function () {
    var index = (new Date()).getTime();
    var clone1 = $('#dropdownDiv').clone();        
    clone1.html($(clone1).html().replace(/\[#\]/g, '[' + index + ']'));
    $('#field1').append(clone1.html());
});

问题:- 下拉列表在单击时被附加,但它们的名称属性对于生成的所有下拉列表都是相同的,因此我无法将数据回发到 Controller 。

最佳答案

虽然这个问题可以通过使用虚拟代码和操纵索引号来解决。通过使用 JS,一个好的方法是使用 Html.BeginCollectionItem(),为下拉列表创建一个部分 View ,然后进行 ajax 调用以将部分 View 附加到主视图。引用答案HERE

关于javascript - 如何在单击按钮时附加多个下拉列表,每个下拉列表在名称属性中具有不同的索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47919732/

相关文章:

asp.net-mvc - 使用 MVC 如何绑定(bind)选定单选按钮的列表?

javascript - 尝试直接从 javascript 控制 Paper.js 时出现奇怪的行为

javascript - 更改 kendo ui 下拉列表的选定值

javascript - 更改 Jquery 工具选项卡幻灯片可点击区域

jquery - 从 cakePHP Controller 检索 json 数组

javascript - 使用 javascript 函数打开选项卡

asp.net-mvc - 干燥 ASP.NET MVC 操作 : ApplicationController or Service?

javascript - 在kinetic js中拖动一个形状也会移动一个不相关的形状

javascript - 更高效的 jquery 账单估算器

c# - 删除标题中的空格(头部)