我想通过javascript(jQuery)在客户端复制级联下拉列表。
您可以在第一个框中看到要复制的级联下拉列表。它们将使用AJAX Control Toolkit的CascadingDropDown控件在ASP.NET中呈现。这非常有效。
当您点击"添加其他类别"将复制firstbox的所有下拉列表。 (见第二个方框)
这是此操作的单击脚本(使用jQuery的clone()):
categoryRow.clone(true, true).insertBefore(containerRow);
subCategory1Row.clone(true, true).insertBefore(containerRow);
subCategory2Row.clone(true, true).insertBefore(containerRow);
subCategory3Row.clone(true, true).insertBefore(containerRow);
clone()函数还复制CascadingDropDown控件的隐藏ClientState字段。
不幸的是,复制的CascadingDropDownLists的级联功能不起作用。
如何才能最好地创建/复制级联的drodwownlists?或者您有其他想法/更好的方法来做到这一点吗?
答案 0 :(得分:1)
“不幸的是,复制的CascadingDropDownLists的级联功能不起作用”
这是因为原始元素也在事件监听器中注册了...复制的元素确实被复制了,但没有那些监听器。
你怎么检查它?在任何现代浏览器中(我都喜欢使用chrome),您可以在输入开发工具时查看HTML页面的元素(点击F12以启用它)。每个元素都有一个活动监听器的映射。
简而言之:找到用于在原始元素的第一个地方中定义事件的函数 - 然后使用此函数注册新复制的元素。
一定要确保不要再登记原始元素 。这将导致每个事件为每个元素激发几次。