提交表单后JQuery重定向
Posted
技术标签:
【中文标题】提交表单后JQuery重定向【英文标题】:JQuery redirect after submitting form 【发布时间】:2015-03-25 23:35:48 【问题描述】:我想在我的表单提交后重定向到按组付款的付款网址。
我尝试了下面的代码,但问题是我的表单正在提交,但我无法重定向。
参见下面的代码 sn-p。
jQuery('.containerdddd' ).click(function()
jQuery('#gform_29' ).submit();
window.location.replace("https://lets.paybygroup.com?merchant=abcd&purchase_description=Great%20rental%20for%203%20people%20with%20lake%20view.&purchase_link_url=http%3A%2F%2Fexample.com%2Fproperty&purchase_currency=CAD&purchase_cost=20&purchase_inventory_id=ESCAPE-23&purchase_name=ssss&purchase_image_url=http%3A%2F%2Fexample.com%2Fpicture.png&mixpanel=14b1230ef5970-091fdb2f9ca03e8-45574336-100200-14b1230ef5b86");
);
任何人都可以告诉我如何使用任何其他选项(如 ajax 和其他东西)。
【问题讨论】:
【参考方案1】:如果您没有 JS 操作可做,那么使用 AJAX 毫无意义。只需将表单提交到服务器。您没有说您使用的是哪种服务器端语言,但为了我的回答,我假设您使用的是 php。
您的表单(带有提交按钮):
<form id="gform_29" method="get" action="form_validation.php">
<input type="text" name="whatever">
<input type="submit" value="Submit">
</form>
如果您确实需要通过 javascript 而不是标准的提交按钮提交,您可以简单地调用 submit() 函数,它将被提交到 action 属性中指定的 URL。
$("#gform_29").submit();
然后,在 form_validation.php 中,您可以对表单数据执行任何操作,一旦完成,您可以像这样进行服务器端重定向:
header('Location: https://lets.paybygroup.com?merchant=abcd&purchase_description=Great%20rental%20for%203%20people%20with%20lake%20view.&purchase_link_url=http%3A%2F%2Fexample.com%2Fproperty&purchase_currency=CAD&purchase_cost=20&purchase_inventory_id=ESCAPE-23&purchase_name=ssss&purchase_image_url=http%3A%2F%2Fexample.com%2Fpicture.png&mixpanel=14b1230ef5970-091fdb2f9ca03e8-45574336-100200-14b1230ef5b86');
保持简单。不要使用你并不真正需要的技术。如果您愿意,可以修改 URL 和使用 post 的方法。
【讨论】:
【参考方案2】:您可以使用 ajax 提交表单:
$('.containerdddd' ).click(function()
var form = $("#gform_29");
var actionURL = form.attr("action");
$.ajax(
url: actionURL,
data: form.serialize(),
cache: false,
success: function(result)
//if the submit was successful, you redirect
window.location.href = yourURL;
,
error: function()
//your error
);
);
这是一些基本的东西,可以帮助您开始做您需要做的事情。
【讨论】:
【参考方案3】:试试这个代码
$("#yourForm").bind('ajax:complete', function()
// your function
);
更新: 试试这个
$(function()
$("form").submit(function(e)
e.preventDefault();//prevent the form from actually submitting
window.location = 'yourpath';
);
);
【讨论】:
如果我阻止提交表单,那么如何在重定向之前提交表单 您可以使用 ajax 发布您的请求,然后在成功时重定向。 你能告诉我任何可以帮助我提交表单调用当前使用的 jquery 函数然后重定向的例子吗? 我已经像下面这样使用了我的表单已提交但未重定向 jQuery('.containerdddd' ).click(function() alert("group"); jQuery('#gform_29' ).submit(); //window.open('@987654321 @); ); jQuery('#gform_29' ).bind('ajax:complete', function() alert("提交表单"); );以上是关于提交表单后JQuery重定向的主要内容,如果未能解决你的问题,请参考以下文章