【问题标题】:JQuery redirect after submitting form提交表单后JQuery重定向
【发布时间】: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 和其他东西)。

【问题讨论】:

    标签: jquery ajax forms


    【解决方案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("提交表单"); });
        猜你喜欢
        • 2014-07-12
        • 2013-04-13
        • 1970-01-01
        • 2013-08-06
        • 2016-12-30
        相关资源
        最近更新 更多