2013-12-10 2 views
0

버튼을 한 번만 클릭 할 수 있도록 수정해야하는 코드 세그먼트가 있습니다.한 번 클릭 한 후에 버튼을 클릭 취소 불가능하게 만들기

다양한 방법을 시도했지만 지금까지 성공하지 못했습니다. 나는 자바 스크립트를 사용할 필요가 있다고 믿는다. 그러나 그것은 정말로 나의 강한 점이 아니다. 그리고 나는 약간 길을 잃는다.

도움을 주시면 감사하겠습니다.

코드는 다음과 같습니다

$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

이 같은 일부 자바 스크립트 고추를해야 할 것입니다 : 추가 태그 매개 변수를 추가 할 수 있도록

$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()의 세 번째 매개 변수는 있습니다.

또는, 당신은 클래스 추가 네 번째 함수 인수를 사용할 수 있습니다 : 당신은, 또는

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; 
} 

을 : 이후

zen_image_submit('add_to_cart3.jpg', BUTTON_IN_CART_ALT, '', 'disable-after-click'); 

을, 당신은 예를 들어, 클래스 명에 근거 클릭 핸들러를 정의 jQuery를 사용하여 위의 작업을 수행 할 수 있습니다.

+0

시도 : zen_image_submit ('add_to_cart3.jpg', BUTTON_IN_CART_ALT, 'onclick = "this.disabled = true;"'); 버튼을 클릭 할 수 없었습니다. 나는 두 번째 해결책을 시도 할 것이다 –

+0

@StevePrice 아, 맞다. 내 나쁜 :) 당신은'setTimeout()'을 사용해야한다. –

+0

이것은 나를 위해 완벽하게 작동했다. 고마워. $ params = 'onclick = "var me = this; setTimeout (function() {me.disabled = true;}, 1);"'; zen_image_submit ('add_to_cart3.jpg', BUTTON_IN_CART_ALT, $ params); –

0

당신은 당신의 버튼에 렌더링되는 페이지 원칙적으로 자바 스크립트를 적용해야합니다. 내가 이것을 구현하는 빠른 방법을 시연했습니다

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

JS Bin를 통해 jQuery를 사용하여 : 클릭 이벤트에 디폴트의 방지하면서 은 특히, 클릭시 장애인의 속성을 추가해야합니다.

+0

JavaScript가 아닙니다. –

+0

jQuery를 통한 구현으로이를 나타 냈습니다. 원한다면 순수한 자바 스크립트 구현도 추가 할 것입니다. 혼란에 대해 사과드립니다. – KLVTZ

+0

@ 잭 그것은 자바 스크립트지만 JQuery를 사용합니다. 사람들은 요즘 순수하고 단순한 자바 스크립트를 더 이상 배우지 못합니다. JQuery와 자바 스크립트가 다른 두 가지라고 생각하는 사람들이 있습니다. –

관련 문제