我使用 JavaScript 创建了一个表单并尝试提交它,但它显示错误消息 document.payment
为空。请帮我
var output_data = '<form id ="payment" name="payment" method="POST" action="https://checkout.google.com/api/checkout/v2/checkoutForm/Merchant/922635804601464" accept-charset="utf-8">'
output_data += '<input type="hidden" name="item_name_1" value="Peanut Butter">';
output_data +='<input type="hidden" name="item_description_1" value="Chunky peanut butter.">';
output_data += '<input type="hidden" name="item_quantity_1" value="1">';
output_data += '<input type="hidden" name="item_price_1" value="3.99">';
output_data += '<input type="hidden" name="item_currency_1" value="USD">';
output_data += '<input type="hidden" name="ship_method_name_1" value="UPS Ground">';
output_data += '<input type="hidden" name="ship_method_price_1" value="10.99">';
output_data += '<input type="hidden" name="ship_method_currency_1" value="USD">';
output_data += '<input type="hidden" name="tax_rate" value="0.0875">';
output_data += '<input type="hidden" name="tax_us_state" value="NY">';
output_data += '<input type="hidden" name="_charset_">';
output_data += '</form>';
//alert(output_data);
//return false;
output_data += "<script>";
output_data += "document.getElementById('payment').submit();";
output_data += "</script>";
document.write(output_data);
原文由 mic 发布,翻译遵循 CC BY-SA 4.0 许可协议
当您尝试提交时,该表格仍然不是文档的一部分。将行更改为:
编辑:另一个“脏”选项是使用计时器:
这将尝试在半秒延迟后提交。
编辑 2:刚才看得更深——你做错了。
您需要使用 AJAX 来执行结帐,使用
jQuery
AJAX 变得非常易于使用。试试这个,如果你撞墙了,请告诉我们。 :)
我几乎可以肯定 Google 公开了
jsonp
允许跨域 AJAX 的服务,如果没有,那么您将不得不从服务器端代码执行此操作。