我有2个表单,1个在我的内容中,1个在我的网站的侧边栏中。我通过$_GET
提交,但我想在更改任何选项时提交表单。由于他们位于2个不同的位置并且包含在2个单独的表单标记中,因此我需要将#form1
附加到#form2
,然后提交#form2
。我已查看了SO问题,所有内容都与:input
和clone()
有关,但根据文档clone()
不适用于select
框。它写着:.clone() Documentation
注意:出于性能原因,某些表单元素的动态状态(例如,键入textarea的用户数据和用户选择 到select)不会复制到克隆元素。克隆输入时 元素,元素的动态状态(例如,键入的用户数据) 文本输入和用户选择复选框)保留在 克隆元素。
那么如何将select
形式附加到单独的表单中呢?
这是我迄今为止所做的尝试:
jQuery('#form1 select, #form2 select').change(function(){
// Tried this
jQuery('#form1 select[name="select_name"]').append('#form2');
// Tried this before the research
jQuery('#form1 select').clone().hide().append('#form2');
// Form submission works without the above code
jQuery('#form2').submit();
});
上述两种方法都不起作用,我的控制台也没有出现任何错误。最糟糕的是我可以循环并将值附加为隐藏的输入,但我希望避免这种情况。
答案 0 :(得分:1)
第一次尝试
jQuery('#form1 select[name="select_name"]').append('#form2');
会尝试将#form2
追加到#form1 select[name="select_name"]
考虑一下......如何将表单附加到选择元素?
如果您打算将选择选项从form1附加到form2,那么您只需切换这些语句。
jQuery('#form2').append('#form1 select[name="select_name"]');
这会将select
form1
选项附加到form2
答案 1 :(得分:0)
您可以序列化表单,附加结果并发出POST:
$.post( url, $("#form1").serialize() + "&" + $("#form2").serialize() );