3 回答
问题是选择菜单的功能现在被破坏了。这是我得到的错误: Uncaught TypeError: Cannot call method 'submit' of null 。
这听起来像是您将克隆的元素放置在其原始元素所在的select
元素之外form
。然后在他们的 change(?) 处理程序中,您尝试访问表单的提交方法,但您的克隆没有引用该表单,因为它们是不在里面。
所以首先你必须解决这个问题,在处理程序中以其他方式引用特定的表单元素,fevar form = $("#formid");
其次,我想您希望克隆选择的当前值也与表单一起发送——这不会发生,因为它们不在表单中。因此,在提交表单之前,您必须将所选值从克隆“转移”到原始值(通过将option
后者的适当元素设置为)。selected
如果我在这些假设中是正确的 ;-),并且您需要进一步的帮助 - 请向我们展示更多您的实际 JS 代码以处理您选择的字段上的事件。
你为什么不重新绑定它?假设这是您的事件:
$('#order__header').change(function (){
//your code
});
取出该函数并将其命名为:
function changeEvent(){
//your code
}
然后将事件处理程序更改为此:
$('#order__header').change(changeEvent);
然后,克隆后,重新绑定它。
var cloned_language = $('#order__header').clone();
cloned_language.on("change", changeEvent);
但是需要更多的代码才能使这个假设成为一个解决方案。
假设您原来的选择有id="original_Select"
,而新的选择有id="cloned_Select"
$(document).on("change","#cloned_Select",function(){
$("#original_Select").val($(this).val())
})
$(document).on("change","#original_Select",function(){
$("#cloned_Select").val($(this).val())
})
所以当其中一个选择改变时,另一个也会改变