我有以下代码:
$.ajax({
type: 'GET',
url: 'index.php?route=checkout/onepagecheckout/getpaypaldata',
dataType: 'json',
success: function(json) {
$('#pp_info').html(json['output']);
$('#payment').submit();
}
});
ajax请求会接收到一个JSON对象,其中包含一个类似以下的HTML表单:
<form id="payment" method="post" action="https://www.paypal.com/cgi-bin/webscr">
<input type="hidden" value="_cart" name="cmd">
<input type="hidden" value="1" name="upload">
<input type="hidden" value="test@yahoo.ca" name="business">
<input type="hidden" value="Sample Item Name" name="item_name_1">
<input type="hidden" value="TESTI-1" name="item_number_1">
<input type="hidden" value="104.98" name="amount_1">
<input type="hidden" value="1" name="quantity_1">
<input type="hidden" value="0" name="weight_1">
<input type="hidden" value="Type" name="on0_1">
<input type="hidden" value="As Shown" name="os0_1">
<input type="hidden" value="Delivery Date" name="on1_1">
<input type="hidden" value="Jun 23,2012" name="os1_1">
<input type="hidden" value="Comments" name="on3_1">
<input type="hidden" value="test message" name="os3_1">
</form>
这段内容包含了PayPal处理订单所需的信息。除此之外,一切都很顺利,但我认为有时候在jQuery .html函数加载完HTML内容之前,表单就已经提交了。
是否有针对 .html 的回调函数或者其他方法可以解决这个问题?PayPal数据以HTML表单的形式出现,我无法更改它,因此我只有一个选择,那就是以某种方式加载HTML内容并提交表单!
setTimeout(function(){$('#payment').submit();},0);
- Kevin B