2013-12-10 55 views
0

我有一段代码段需要修改,以便按钮只能单击一次。点击一次后不可点击按钮

我已经尝试了各种方法,并没有设法成功到目前为止。我相信我需要使用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

您首先需要显示按钮所在的代码。在我以前的答案(我删除)我已经把代码输入类型按钮或提交。是否注意到这是一个inpyt隐藏类型。所以告诉我们你的代码在哪里。如果你有一个提交按钮@KLVTZ答案应该可以工作,但是你需要在你的页面上包含jquery。 –

回答

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来完成上述操作。

+0

试过这个:zen_image_submit('add_to_cart3.jpg',BUTTON_IN_CART_ALT,'onclick =“this.disabled = true;”'); 但按钮根本不可点击。我会尝试你的第二个解决方案 –

+0

@StevePrice哦,对...我的坏:)你应该使用'setTimeout()':) –

+0

这对我来说非常合适。谢谢杰克。()函数(){me.disabled = true;},1);“'; zen_image_submit('add_to_cart3.jpg',BUTTON_IN_CART_ALT,$ params); –

0

您需要应用JavaScript作为一种规则,你的按钮呈现在页面上。 具体来说,您需要在点击添加禁用的属性,同时防止违约的单击事件:使用jQuery通过JS Bin

$(function(){ 
    var button = $("input[type=submit]"); 
    button.on('click', function(e){ 
     button.attr("disabled", "disabled"); 
     e.preventDefault(); 
    }); 
}) 

我已经证明了实现这个的快捷方式。

+0

这不是JavaScript。 –

+0

我已经表明通过jQuery实现。如果你愿意,我也会添加一个纯Javascript实现。我对这种混乱表示抱歉。 – KLVTZ

+0

@Jack这是JavaScript,但使用JQuery。现在人们不再学习纯粹和简单的JavaScript了,有人认为JQuery和Javascript是两个不同的东西。 –