使用JS无法正常提交PayPal表单

时间:2011-03-11 15:12:44

标签: javascript jquery forms submit

我有一个PayPal表单如下:(某些字段是使用jQuery添加的)

<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>

我正在尝试使用此代码使用第3个input元素(type="button")提交表单:

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

这应该可以正常工作吗?我正在使用var button因为click()函数后面的其他部分。我已检查tagName的{​​{1}},并将其作为button.parent()给出,这样就可以了......

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

谢谢,

詹姆斯

2 个答案:

答案 0 :(得分:4)

为什么不将输入类型从button设置为submit?这会使按钮提交表单而不需要任何Javascript吗?

或者如果你想使用javascript(jQuery),你可以给表单一个这样的ID:

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

如果您想提交表格,可以致电:

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

答案 1 :(得分:3)

您有一个名为submit的表单控件。这会使submit函数与HTMLElementNode混淆。

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

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

复杂的解决方案是从另一个表单中获取submit方法的副本,然后将其与您要提交的表单一起使用:

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