我有一个我需要修改的代码段,以便只能单击该按钮一次。
到目前为止,我尝试了各种方法并没有成功。我相信我需要使用javascript,但这不是我的强项,我有点迷失。
感谢任何帮助。
代码段是:
$the_button = '<input type="hidden" name="cart_quantity" value="1"/>' . zen_draw_hidden_field('products_id', (int)$_GET['products_id']) . zen_image_submit('add_to_cart3.jpg', BUTTON_IN_CART_ALT) . '<span id="button_cart" style="padding-left:6px;"></span>';
答案 0 :(得分:1)
您必须使用这样的JavaScript来加密它:
$params = 'onclick="var me=this;setTimeout(function(){me.disabled=true;},1);"';
zen_image_submit('add_to_cart3.jpg', BUTTON_IN_CART_ALT, $params);
zen_image_submit()
的第三个参数允许添加额外的标记参数。
或者,您可以使用第四个函数参数来添加类:
zen_image_submit('add_to_cart3.jpg', BUTTON_IN_CART_ALT, '', 'disable-after-click');
然后,您可以根据类名称定义单击处理程序,例如:
var buttons = document.getElementsByClassName('disable-after-click'),
clickHandler = function() {
var me = this;
setTimeout(function() {
me.disabled = true;
}, 1);
};
for (var i = 0; i < buttons.length; ++i) {
buttons[i].onclick = clickHandler;
}
或者,您可以使用jQuery执行上述操作。
答案 1 :(得分:0)
您需要将JavaScript作为规则应用于呈现按钮的页面。 具体来说,您需要在单击时添加禁用属性,同时防止默认为单击事件:
$(function(){
var button = $("input[type=submit]");
button.on('click', function(e){
button.attr("disabled", "disabled");
e.preventDefault();
});
})
我已经演示了使用jQuery通过JS Bin实现此快速方法。