2013-02-06 191 views
2

我有一个带有两种表单的页面,第一种形式是用户输入名称,地址等详细信息(不提交按钮)。第二种形式将购买详细信息提交给贝宝。 我目前使用paypal表单提交按钮和onClick事件来调用一个函数,该函数通过$ .post将用户详细信息输入到我的数据库到一个php脚本。

的HTML:

<form id="regcust"> 
    <input type="text" name="fName" id="fName"> 
    <input type="text" name="lName" id="lName"> 
    </form> 

    <form id="paypal_button_form" action="https://www.paypal.com/cgi-bin/webscr" method="post"> 
    <input type="image" src="/img/buynow.gif" onClick="registerCustomer()" name="submit"> 
    </form> 

jQuery的:

function registerCustomer() { 
     var form = document.getElementById("regcust"); 
     var fn = $("input[name='fName']").val(); 
     var ln = $("input[name='lName']").val(); 

     $.post("RegisterCustomer.php", { 
      fName: fn, 
      lName: ln 
     }); 
    }; 

Note: I have stripped this right down for clarity. 

我建立的网站在Chrome中,一切工作正常,当用户点击PayPal按钮,细节记录在我的数据库中,并且用户被发送到PayPal进行付款。但是,我刚刚在Firefox中进行了测试,并且没有捕获用户的详细信息,用户在没有输入详细信息的情况下被发送到PayPal? - 编辑:如果我把一个alert()放入函数中,这会启动,所以看起来很奇怪,它没有记录细节。

我搜索了这个网站并搜索了这个网站,发现了类似的问题/答案,但是他们没有一个在我的脚本上工作。我甚至安装了萤火虫,并试图通过它,但作为一个PHP家伙诚实,调试jQuery/JavaScript有点混淆看它所呈现给我的所有信息 - 虽然错误窗口总是空的?

任何人都可以为我阐明这一点,或者请指点我正确的方向,因为我无法绕过它。

在此先感谢。

编辑:由我发布的答案解决了我的问题,谢谢;) 我确实尝试并投了他的答案,但它似乎我的代表太低了这样做。

任何人都可以说明为什么它在Chrome中工作,但不在Firefox中?我想尝试了解发生了什么(或不是),所以我避免了这种情况。

+1

你需要看萤火网络选项卡中,而不是控制台以获取更多信息 – thatidiotguy

+1

实现这一点的最佳方式是捕获表单提交事件。记录/保存所有需要的数据,然后返回true。 –

+0

它看起来也许你只需要停止事件发射,因为表单在Firefox中提交而不是铬。 – Rooster

回答

2

看起来好像在按钮的点击事件和提交表单之间可能存在争用条件。您可能需要明确链接这些事件,以便它们始终以您想要的顺序发生。此代码提交您的RegisterCustomer,然后仅在完成后提交PayPal表单。写到这了我的头顶,我不正确的:

<form id="regcust"> 
<input type="text" name="fName" id="fName"> 
<input type="text" name="lName" id="lName"> 
</form> 

<form id="paypal_button_form" action="https://www.paypal.com/cgi-bin/webscr" method="post"> 
</form> 

<a href="javascript:;" id="buyNow"><img src="/img/buynow.gif"></a> 

JS:

$(document).ready(function() { 
    $("#buyNow").click(function() { 
    var form = $("#paypal_button_form"); 
    var fn = $("#fName").val(); 
    var ln = $("#lname").val(); 

    $.post("RegisterCustomer.php", { 
     fName: fn, 
     lName: ln 
    }, function() { 
     form.submit() 
    }); 
    }); 
}); 
+0

感谢男人,作品像一个魅力! ;)PS:我试着投你的答案,但它似乎我的代表太低投票:(所以我会在这里说,这固定了我,再次感谢(竖起大拇指);) – Redscouse

+0

太棒了!我认为你应该能够检查投票按钮下方的框,以表明这是一个答案。 – awl

+0

哎呀!我没有意识到我们可以点击勾号。我只是点击它,我想现在将显示为答案,再次感谢。 ;) – Redscouse

0
$(document).ready(function() { 
    $("#buyNow").click(function() { 
    var form = $("#paypal_button_form"); 
    var fn = $("#fName").val(); 
    var ln = $("#lname").val(); 

    $.post("RegisterCustomer.php", { 
     fName: fn, 
     lName: ln 
    }).done(function() { 
    form.submit(); 
}); 
    }); 
}); 
相关问题