提交表单后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重定向的主要内容,如果未能解决你的问题,请参考以下文章

Struts2 JQuery:Ajax 提交表单、服务器表单验证和成功重定向

提交ajax表单并使用jquery重定向到另一个页面

使用引导验证库防止表单提交后重定向

提交表单后重定向到另一个页面?

Ajax表单提交后如何将用户重定向到另一个页面

提交表单后Node JS重定向