javascript - 克隆包含剑道输入的 div

标签 javascript jquery html kendo-ui clone

我有一个应用程序,允许用户动态创建包含剑道输入的 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);
    }
}

但是由于输入已经初始化,此时更改 id 是没有用的。有什么方法可以更改剑道输入的 ID 然后重建它吗?

抱歉,文字太长,提前致谢

最佳答案

几乎就在那里:http://dojo.telerik.com/@Stephen/EWEna

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

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

element[originalWidgetType](originalWidget.options);

我的 dojo 示例很接近...但由于某种原因,克隆的 DatePickers 太宽...并且我还没有测试所有可能的元素,但我认为它可以用作一个开始。

编辑

我发现这种使用 Kendo MVVM 的技术似乎会更好:http://jsfiddle.net/krustev/U6nSv/

不是我的解决方案(不知道如何归功于)。

这是我更新为使用该技术的原始示例:http://dojo.telerik.com/@Stephen/aquRE

关于javascript - 克隆包含剑道输入的 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37976015/

相关文章:

javascript - 使用 Javascript 保存跟踪的 GPS 数据

jquery - 代码可以在 jsfiddle 中运行,但不能在 html 文档中运行

javascript - ID 属性周围有括号?

html - 为什么将 anchor 标签的text-align设置为右对齐,移动 anchor 标签内的span标签,移出 anchor 标签

html - 有没有办法调整 &lt;input type ="label">?

javascript - 如何更改此 iframe 的大小?

javascript - 如何使用 jQuery 对发票应用税收、折扣

javascript - 如果光标超出 jquery 中的输入标记,如何设置事件

javascript - 根据符号向值动态添加类

jquery - 如何通过chrome访问json文件