我正在使用opencart。我不希望我的用戶購買多種產品,他們只能購買1個客戶ID爲1的產品,所以爲此我希望我的購物車按鈕可以幫助我。如果添加到購物車進程成功執行,我希望此按鈕被禁用(只讀)。點擊使用jquery後禁用按鈕
HTML:
<button type="button" id="button-cart" data-loading-text="<?php echo $text_loading; ?>" class="btn btn-primary btn-lg btn-block"><?php echo $button_cart; ?></button>
的Jquery:
<script type="text/javascript"><!--
$('#button-cart').on('click', function() {
$.ajax({
url: 'index.php?route=checkout/cart/add',
type: 'post',
data: $('#product input[type=\'text\'], #product input[type=\'hidden\'], #product input[type=\'radio\']:checked, #product input[type=\'checkbox\']:checked, #product select, #product textarea'),
dataType: 'json',
beforeSend: function() {
$('#button-cart').button('loading');
},
complete: function() {
$('#button-cart').button('reset');
},
success: function(json) {
$('.alert, .text-danger').remove();
$('.form-group').removeClass('has-error');
if (json['error']) {
if (json['error']['option']) {
for (i in json['error']['option']) {
var element = $('#input-option' + i.replace('_', '-'));
if (element.parent().hasClass('input-group')) {
element.parent().after('<div class="text-danger">' + json['error']['option'][i] + '</div>');
} else {
element.after('<div class="text-danger">' + json['error']['option'][i] + '</div>');
}
}
}
if (json['error']['recurring']) {
$('select[name=\'recurring_id\']').after('<div class="text-danger">' + json['error']['recurring'] + '</div>');
}
// Highlight any found errors
$('.text-danger').parent().addClass('has-error');
}
if (json['success']) {
$('.breadcrumb').after('<div class="alert alert-success">' + json['success'] + '<button type="button" class="close" data-dismiss="alert">×</button></div>');
$('#cart > button').html('<i class="fa fa-shopping-cart"></i> ' + json['total']);
$('html, body').animate({ scrollTop: 0 }, 'slow');
$('#cart > ul').load('index.php?route=common/cart/info ul li');
}
}
});
});//--></script>
我知道這將這樣的伎倆
$(this).attr('disabled', true);
但IAM沒有找到它的最佳位置。我想如果驗證全部完成,並在車區域中輸入產品
用這個'jQuery'方法,按鈕只會被禁用一次。如果最終用戶刷新頁面或移動到其他頁面並返回;他/她將能夠看到處於「啓用」狀態的按鈕。 – vijayP
@vijayP如果它已禁用當前用戶,如果他已將產品添加到購物車中,哪種方法將會罰款? –
您將不得不使用'jQuery'方法以及服務器端驗證來實現您的目標。例如 - 在渲染頁面時;在創建按鈕時,必須有服務器端代碼的「if」條件來檢查當前產品是否存在於購物車中。如果它在那裏,而不是「添加」按鈕,顯示虛擬禁用添加按鈕沒有點擊事件。其次,使用上面的代碼將'ajax'添加到購物車和'成功'處理程序中,而不是禁用按鈕,我會建議用虛擬按鈕替換原始按鈕,不要點擊事件。 – vijayP