提交一份表格,阿加星也
Submitting one form and Ajaxing too
我使用以下代码提交表单并在aweber电子邮件列表中注册(addlead.pl 只是一个注册脚本)。以下是我想要完成的:用户提交表单 - 它会在 aweber 电子邮件列表中注册他(使用许多表单字段中的两个),因为它是注册表单,然后用户被重定向到包含表单中发布信息的正常表单操作 URL(所有字段)
$('#redeemform').submit(function() {
var nameVal = $(this).find('input[name="custname"]').val();
var emailVal = $(this).find('input[name="custemail"]').val();
$.post('http://www.aweber.com/scripts/addlead.pl', {
meta_web_form_id: '1234',
meta_split_id: '',
listname: 'listname',
redirect: '',
meta_adtracking: 'newsletter',
meta_message: '1',
meta_required: 'name,email',
meta_tooltip: '',
email: emailVal,
name: nameVal
});
alert("thank you"); //<<magic line
return true;
});
代码有效,但只能使用魔术行 - 警报"谢谢" - 没有这一行,它只会提交到默认表单操作而不注册到 aweber。我已经发现,如果我尝试提交表单(返回 true)并同时发送这样的 POST 请求 - 网站会刷新太快并接收其中一个请求。问题是我如何在没有警报/此行中某些固定延迟的情况下做到这一点。有没有某种花哨的命令?
-
绝对最好的解决方案是让你的表单请求在服务器上使用 CURL 或类似内容调用 weber
-
由于您不能将 Ajax 到另一个域,因此如果要在客户端上运行它,则需要更具创造力
所以在提交事件中,我们
- 将目标更改为隐藏帧2
- 将 AWEBER 表单提交到 Hiddenframe1
- 让主窗体提交到 hiddenframe2
现在你需要在你的主窗体的结果中返回类似的东西
<script>top.location.replace("thankyou.html");</script>
假设您的表单将请求发送到 HTML 来自的同一服务器
并有
$('#redeemform').on("submit",function() {
$(this).prop("target","hiddenframe2");
if (!$("#hiddenframe1")) {
$("<iframe/>",{"id":"hiddenframe","name":"hiddenframe1"})
.css("display","none")
.appendTo("body");
}
if (!$("#hiddenframe2")) {
$("<iframe/>",{"id":"hiddenframe","name":"hiddenframe2"})
.css("display","none")
.appendTo("body");
}
var nameVal = $(this).find('input[name="custname"]').val();
var emailVal = $(this).find('input[name="custemail"]').val();
$("<form>",{"action":"http://www.aweber.com/scripts/addlead.pl",
"target":"hiddenFrame1"})
.append("<input/>",{meta_web_form_id: '1234'})
.append("<input/>",{meta_split_id: ''})
.append("<input/>",{listname: 'listname'})
.append("<input/>",{redirect: ''})
.append("<input/>",{meta_adtracking: 'newsletter'})
.append("<input/>",{meta_message: '1'})
.append("<input/>",{meta_required: 'name,email'})
.append("<input/>",{meta_tooltip: ''})
.append("<input/>",{email: emailVal})
.append("<input/>",{name: nameVal})
.submit();
});
如果你能够将Ajax到aweber,这是可以做的事情,由于跨域脚本,你不能这样做。如果他们支持 JSONP/CORS,你也许可以做到
$('#redeemformButton').on("click",function() {
var $form = $('#redeemform');
var nameVal = $form.find('input[name="custname"]').val();
var emailVal = $form.find('input[name="custemail"]').val();
$.post('http://www.aweber.com/scripts/addlead.pl', {
meta_web_form_id: '1234',
meta_split_id: '',
listname: 'listname',
redirect: '',
meta_adtracking: 'newsletter',
meta_message: '1',
meta_required: 'name,email',
meta_tooltip: '',
email: emailVal,
name: nameVal
},function() {
$form.submit();
});
});
并有一个
<input type="button" id="redeemformButton" value="Sign up and submit" />
相关文章:
- 我正在创建一个聊天,但每次我发送消息时,它都不会让我再发送另一条消息,就像表格一样;不起作用
- 有没有一种方法可以使用Javascript检索谷歌表单ITSELF(而不是电子表格)的数据
- 在最初的查询/表格绘制中只提取谷歌电子表格的一列
- “搜索”文本仅考虑表格中的最后一列
- 给Chai/Mocha一份应该包括在内的部分钥匙清单
- 如何在提交时防止粘性复选框重置?(一页上有多个表格)
- 有人能告诉我为什么点击按钮时不提交这份表格吗
- Soundcloud API寻呼-8000的偏移限制是否意味着您可以'I don’我无法得到一份超过8000长的
- 提交一份表格,阿加星也
- 有window.load'会有问题吗;在'一份文件.准备
- 我是否需要在lib或vendor文件夹中保留一份js库的副本,尽管已经使用npm安装了
- 如何提交一份特定的表格,而不让两者的内容都消失
- 自定义功能在谷歌电子表格:一个人之间的分歧和其他组
- 有没有办法提交一份“假的”照片?表单使用jQuery
- 玉版印刷猫鼬系列;只拿到一份文件
- 从网站上打印一份表格提交
- 并列表.找到并返回一份副本
- 我想做一份半相同的手册,就像这页上的一样
- 为什么redux需要在每次数据更改时生成一份数据副本?
- 一次提交两份表格