我有一个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
标签)吗?别的什么?我的桌子上缺少成熟的切达干酪?
谢谢,
詹姆斯
答案 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);