我有一個表單將購物車數據提交到支付網關(WorldPay)付款處理頁面。自定義決定繼續付款之前但在表單提交之前,我需要執行一些額外的邏輯。基本上,我只想在最後一刻爲訂單生成一個唯一的參考。如何重置表單提交事件的event.preventDefault()?
這裏是提交事件jQuery代碼:
$(function(){
$('#checkout-form').submit(function(e){
var $form = $(this);
var $cartIdField = $('#cartId');
console.log($cartIdField.val());
if($cartIdField.val() == ''){
e.preventDefault();
$.ajax({
url: baseUrl + '/shop/ajax/retrieve-shopping-cart-reference/',
data: {}, type: 'post', dataType: 'json',
success: function(json){
if(json.error == 0){
$('#cartId').val(json.data.cart_reference_number);
$form.submit();
}else{
alert(json.message);
}
}
});
}else{
console.log('Submitting form...'); //Does not submit!
}
});
});
的問題是,在第二次提交success:
子句中引發的,形式沒有提交仍在。我假設event.preventDefault()
持續超出目前的狀況。
我該如何解決這個問題?
什麼是輸出從'console.log($ cartIdField.val());'在第二次提交? –
http://stackoverflow.com/questions/1164132/how-to-reenable-event-preventdefault/1168022#1168022 ?? '.trigger('submit')'可能有幫助, –
@Tats_innit這就是這段代碼似乎已經在做的事情,但仍然不起作用 - 我不認爲問題實際上是用'e.preventDefault()' 。 –