我已经阅读了许多链接并尝试了许多示例,但似乎仍无法使其正常工作。任何帮助和建议都将非常受欢迎。
我有一个需要两个动作的表单:
完成这两项操作后,将显示一个感谢页面。
我现在的想法是创建两个表单(用户只能看到一个表单)。
HTML表单:
<form id="form1" name="form1" action="">
form1: Last Name: <input type="text" name="Last Name" id="Last Name" class="copy" value="from A"/>
</form>
<form id="form2" name="form2" action="externalhost.html">
<input type='text' name='returnURL' value='thankyou.php'>
form2: Last Name: <input type="text" name="Last Name" id="Last Name" class="copy" value="target A" />
</form>
<input id="myButton" type="submit" value="hit me..." >
当用户输入数据并点击提交时,所有数据都将被复制到第二个表单。
function form2form(aF1, aF2) {
var selection = "#" + aF1 + " .copy";
jQuery(selection).each(function() {
document.forms[aF2].elements[jQuery(this).attr('name')].value = jQuery(this).val();
});
}
然后将“form1”提交给自己的服务器以创建和发送电子邮件。
然后将“form2”提交给外部主机以进入该CRM系统。 “form2”中的一个字段将是一个返回URL,它将是谢谢页面。
逻辑,直接的方法,
jQuery(document).ready(function() {
jQuery('#myButton').click(function() {
form2form ('form1', 'form2' );
jQuery('#form1').submit();
jQuery('#form1').submit();
});
});
不幸的是,不起作用。
我当前的jquery代码也无效。
jQuery(document).ready(function() {
jQuery("#myButton").livequery('click', function() {
var form = jQuery("#form2");
var action = form.attr("action");
var serialized_form = form.serialize();
jQuery.post(action, serialized_form, submit_first);
});
});
function submit_first(val) {
jQuery("#form1").submit();
}
如果你可以指导我找到一个可行的解决方案,那真的会有所帮助。我一直对这个问题感到头疼太久了。
答案 0 :(得分:3)
不要重新发明互联网。使用jQuery.ajax()将数据发送到您的服务器。然后转移到外部服务器。
答案 1 :(得分:1)
我要做的是通过ajax将表单提交给两台服务器。
类似的东西:
jQuery("#form1").submit(function() {
data = jQuery(this).serialize();
jQuery.post('internal_server', data);
jQuery.post('external_server', data);
//redirect to thank you page, etc.
return false; // Prevent normal form submission
});