2011-03-11 62 views
2

我有一个贝宝的形式如下:(某些字段使用jQuery加)提交使用贝宝JS形式不工作

 
<form method="post" action="https://www.paypal.com/cgi-bin/webscr"> 
    <input type="hidden" value="_s-xclick" name="cmd"> 
    <input type="hidden" value="sdfgsdfg" name="hosted_button_id"> 
    <input type="button" value="Purchase One Year License" name="submit" class="pp_button" id="35" style="background-color: rgb(255, 255, 255);"> 
    <input type="hidden" value="35" name="cs_project_id">            
    <input type="hidden" value="6d04c7a241ad4415eb194a90dc252b09" name="cs_transaction_id"> 
</form> 

我试图使用使用第三input元素(type="button")提交表单验证码:

 
$(".pp_button").click(function() 
{ 
    var button = $(this); 
    button.parent().submit(); 
}); 

这应该很好地工作吧?由于click()函数后面的其他部分,我正在使用var button。我检查了button.parent()tagName,它的编号为FORM,所以这很好...

我在这里做了什么错?这通常工作正常...是因为我从AJAX调用插入标签(最后两个input标签)?还有别的吗?我的桌子上缺乏成熟的切达干酪?

感谢,

詹姆斯

回答

4

你为什么不只是设置的输入类型从buttonsubmit?这会使按钮提交表单而不需要任何Javascript?

或者,如果你想使用JavaScript(jQuery的),你能给形式像这样的ID:

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

而当你想提交表单,您可以拨打:

$("#paypal_form").submit(); 
3

您有一个名为submit表单控件。这个submit功能与HTMLElementNode

最好的解决方案可能是在这里不使用JavaScript。你说你需要其他的事情发生,但用户可能会关闭JS,所以如果他们很重要,你几乎肯定会找到一种不同的方式更好。

简单的解决方案是更改名称。

这个复杂的解决办法是从另一种形式得到提交方法的副本,然后用形式使用它,你要提交:

document.createElement('form').submit.apply(this.form); 
+0

令人烦恼的是我不能改变名字(至少我认为);它可能会以某种方式被PayPal使用......我会用另一个名字来测试它。 – Bojangles 2011-03-11 15:23:58

+0

Yeaop ...我收到一个错误:-(Dang。 – Bojangles 2011-03-11 15:24:41