Javascript 克隆包含剑道输入的div

Javascript 克隆包含剑道输入的div,javascript,jquery,html,kendo-ui,clone,Javascript,Jquery,Html,Kendo Ui,Clone,我有一个应用程序,允许用户动态创建包含剑道输入的div。为此,我有一个div,其中包含多个剑道输入,我将其用作一种模板。当用户决定向页面添加节时,我使用jquery.clone()克隆div。UI中的一切看起来都很好,但由于剑道输入在HTML中只初始化了一次,然后被复制,因此不会重新生成输入,因此初始ID不唯一,并且输入不起作用 我试图通过执行以下操作以编程方式解决此问题 var $kendoInputs = $$(".draggableContainer .k-input"); for (va

我有一个应用程序,允许用户动态创建包含剑道输入的div。为此,我有一个div,其中包含多个剑道输入,我将其用作一种模板。当用户决定向页面添加节时,我使用jquery.clone()克隆div。UI中的一切看起来都很好,但由于剑道输入在HTML中只初始化了一次,然后被复制,因此不会重新生成输入,因此初始ID不唯一,并且输入不起作用

我试图通过执行以下操作以编程方式解决此问题

var $kendoInputs = $$(".draggableContainer .k-input");
for (var j = 0; j < $kendoInputs.length; j++) {
    if ($($kendoInputs[j]).attr("id")) {
        var newid = "newid" + j;
        $($kendoInputs[j]).attr("id", newid).attr("name", newid);
    }
}
var$kendoInputs=$$(“.draggableContainer.k-input”);
对于(变量j=0;j<$kendoInputs.length;j++){
如果($($kendoInputs[j]).attr(“id”)){
var newid=“newid”+j;
$($kendoInputs[j]).attr(“id”,newid).attr(“name”,newid);
}
}
但由于输入已经初始化,因此在此时更改ID是无用的。有没有办法更改剑道输入的ID,然后重建它

很抱歉收到这么长的一段文字,请提前感谢

这就快到了:

尝试只克隆剑道元素的基本输入(使用新id),而不是克隆剑道添加的所有元素。 然后获取原始小部件的类型和选项,并使用原始选项将新元素初始化为原始类型

var originalElement = $("#" + originalID);
var originalWidgetType = "kendo" + kendo.widgetInstance(originalElement).options.name;
var originalWidget = originalElement.data(originalWidgetType);

element[originalWidgetType](originalWidget.options);
我的dojo示例很接近……但由于某些原因,克隆的日期选择器太宽了……而且我还没有使用所有可能的元素进行测试,但我认为它可以作为一个开始

编辑

我发现使用剑道MVVM的这种技术似乎更好:

这不是我的解决方案(不确定如何赊账)

下面是我的原始示例,已更新为使用该技术: