如何使用jquery(ajaxForm插件)将表单提交到外部站点但不重新加载到其他页面?

我正在尝试创建一个表单,将客户的姓名和电子邮件地址发送到icontact(电子邮件列表应用程序)。

所有值对于icontact都是正确的,如果我像往常一样提交表单,icontact会回复它添加了电子邮件地址。 成功消息从icontact的网站加载到新页面。

我想要完成的是ajax会发送表单并在当前页面中返回成功消息,而不会将客户发送到新页面。

这是测试页面: http : //www.skhot.com/test/js-test/forms/index.php

对于那些通过ajax提交icontact表单时遇到问题的人试试这个:

$.get("https://app.sandbox.icontact.com/icp/signup.php", { listid: "xxx", "specialid:xxx": "xxx",clientid : "xxx",fields_email: 'test@gmail.com' }, function(){ alert('email added to the list :)'); } ); 

用所需参数替换xxx 🙂

在你的情况下,我认为:

preventDefault将阻止提交按钮的正常行为,即遵循表单的操作URL。

 $('#frmSubmit').click(function(e) { e.preventDefault(); } 

如果这不起作用,您可以尝试在success函数中返回false:

 $('#change-form') .jqTransform() .validate({ submitHandler: function(form) { $(form).ajaxForm({ success: function() { $('#change-form').hide(); $('#frmWrap').append("

Thanks! Your request has been sent.

") return false; } }); } });

编辑:你可以尝试的另一件事是附加’return false’onsubmit事件:

 

感谢他的芒果,虽然做了一些改变,但这就是我所拥有的


 
Email

First Name

Last Name

一种选择是摆脱具有提交按钮的表单,而不是使用按钮并具有JavaScript onClick处理程序。 在onClick处理程序中,您应该使用AJAX在POST请求中发送表单中的数据,然后捕获响应。 当你得到响应时,使用jQuery来修改你想要修改的divforms,或者做一个重定向,或者其他什么。

我认为真正的问题是,默认情况下表单提交总是在表单标记的action属性中加载新页面,因此您不能依赖HTML表单提交方法。

可能还有其他更有效的方法(特别是使用jQuery,我不太清楚),但我提出的算法应该可行。

请参阅jQuery Ajax 。

 $.ajax({ type: "POST", url: "some.php", data: $("#idform").serialize(), success: function(msg){ alert( "Data Saved: " + msg ); } }) 

;

Ajax可以提交表单,但显示成功消息很棘手。

请参阅此JQuery AJAX post方法

将type参数设置为’html’。

您可以指定一个回调函数,该函数可以解析并显示来自iContact服务器的响应。

我把icontact从等式中拿出来,一切都按计划进行。 所以问题不是代码,而是icontact如何处理他们的PHP。 我将不得不与他们取得联系以获得真正的解决方案。

感谢大家的帮助和提供建议! 我的故障排除不会对您有所帮助。