如何使用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事件:
感谢他的芒果,虽然做了一些改变,但这就是我所拥有的
一种选择是摆脱具有提交按钮的表单,而不是使用按钮并具有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。 我将不得不与他们取得联系以获得真正的解决方案。
感谢大家的帮助和提供建议! 我的故障排除不会对您有所帮助。
- 在MySql数据库中添加新记录时,使用Jquery自动更新Div
- 如何在ASP.NET MVC中执行图像的Ajax / JQuery上载?
- ajax单击事件未触发选择选项
- 在ajax成功时显示用户消息
- ASP.NET MVC 3 Partial View在视图中从动态列表动态呈现和链接
- 本地html文件AJAX调用和jQuery Woes
- Jquery表单提交无效
- 列式搜索给出“227200:101 Uncaught TypeError:otable.api()。列不是函数”JQuery dataTable中的错误
- 如何设置jQuery ajaxpost的contentType,以便ASP.NET MVC可以读取它?