Javascript 如何使用jquery克隆剑道多选

Javascript 如何使用jquery克隆剑道多选,javascript,jquery,asp.net-mvc-3,kendo-ui,kendo-asp.net-mvc,Javascript,Jquery,Asp.net Mvc 3,Kendo Ui,Kendo Asp.net Mvc,我正在使用按钮动态添加它 这是我在MVC中的HTML页面,我想在运行时克隆这个multiselect 我正在使用以下javascript: <div class="target-elements"> @(Html.Kendo().MultiSelect() .Name("required") .Placeholder("Select attendees...") .BindTo(new List<string>() {

我正在使用按钮动态添加它

这是我在MVC中的HTML页面,我想在运行时克隆这个multiselect

我正在使用以下javascript:

<div class="target-elements">

@(Html.Kendo().MultiSelect()
      .Name("required")
      .Placeholder("Select attendees...")
      .BindTo(new List<string>() {
          "Steven White",
          "Nancy King",
          "Anne King",
          "Nancy Davolio",
          "Robert Davolio",
          "Michael Leverling",
          "Andrew Callahan",
          "Michael Suyama",
          "Anne King",
          "Laura Peacock",
          "Robert Fuller",
          "Janet White",
          "Nancy Leverling",
          "Robert Buchanan",
          "Andrew Fuller",
          "Anne Davolio",
          "Andrew Suyama",
          "Nige Buchanan",
          "Laura Fuller"
      })
      .Value(new string[] { "Anne King", "Andrew Fuller" })
)
如果我使用的是普通下拉菜单,它就可以工作了。但在剑道中,新添加的multiselect不起作用


请建议

我在这个问题上花了几个小时。我认为这是办不到的。至少,不能使用.clone。即使您更改了id和名称,克隆也会出现一系列问题。您将得到两个嵌套的多重选择,或者单击其中一个,上面一个的下拉列表将打开。您可以尝试按照@StephenMueke的建议进行.clonetrue深度复制,但同样,这不起作用。我认为这个问题是由于存在于克隆区域之外的DOM中的multiselect元素造成的

我有一个解决方案,是我从网络上的点点滴滴中创造出来的,如果你放弃了.clone,仍然需要这个multiselect,这可能是最后的选择。这些步骤是:

在将成为克隆目标的页面上设置一个隐藏的空选择

<script type="text/javascript">

function cloneTargetBox() {
    debugger;
    var targetBoxClone = $(".target-elements:first").clone();
    targetBoxClone.find("input").val("");
    targetBoxClone.insertAfter(".target-elements:last")
}

$(document).ready(function () {
    $(".add").click(cloneTargetBox);
});

如果您也想传输这些值,请继续。只需引用主版本

它正在克隆html吗?是的,它正在克隆html,但新添加的multiselect不起作用。只有旧的一个有效..你可以尝试使用.clonetrue with dataandEvents,但我怀疑你需要将插件附加到克隆元素上-类似$your element.kendoMultiselects谢谢你的回复,你能提供一些示例吗?我使用的是剑道MVC而不是剑道UI。在剑道UI中,我们有一些功能,比如var required=$required.kendoMultiSelect.datakendoMultiSelect;
 <select style="display:none" id="notYetMultiSelect> 
// unhide the damn thing or you wont see it.
$("#notYetMultiSelect").show(); 
var masterMultiSelect = $("#MS").data('kendoMultiSelect');
var masterMultiSelectRecords =  masterMultiSelect.dataSource.data().toJSON();
// enhance as multiselect
$("#notYetMultiSelect").kendoMultiSelect({
dataTextField: "something",
dataValueField: "somethingElse",
placeholder: "whatever",
dataSource: masterMultiSelectRecords,
});