2014-02-18 2 views
0

여기 내 머리를 두드리는 중입니다. 너무 단순 해 보이지만 이걸 가져올 수 없습니다. 이야기는 내가 ASP.Net MVC 응용 프로그램 인 NopCommerce로 작업하고 있으며 사용자가 결제 과정을 거치고 배송 페이지에있는 것처럼 사용자가 " 계속 "버튼을 누르지 만 Shipping 이벤트에서 Shipping.Save 메소드가 호출되기 전에 대화 상자를 열고 정보를 전달하려고합니다. 그런 다음 대화 상자에서 예/아니요를 선택하고 선택 항목에 따라 예를 선택하고 버튼을 원래대로 클릭 한 것처럼 계속 진행하면 레코드를 업데이트하거나 아니요를 클릭하면 상자가 나타납니다 닫고 다시 버튼을 클릭하면 원래 다음 섹션으로 이동했습니다.JQuery로 버튼 사용 안 함

그래서 지금이 같은 HTML이 모습입니다 : 나는 많은 다른 일을 시도

</li> 
      <li id="opc-shipping" class="tab-section"> 
       <div class="step-title"> 
        <span class="number">2</span> 
        <h2>Shipping address</h2> 
       </div> 
       <div id="checkout-step-shipping" class="step a-item" style="display: none;"> 
        <form action="" id="co-shipping-form"> 
        <div id="checkout-shipping-load"> 

        </div> 
        </form> 
        <script type="text/javascript"> 
         Shipping.init('#co-shipping-form', 'http://localhost:15536/checkout/OpcSaveShipping/'); 
         if ($("#shipping-address-select").length > 0) { 
          Shipping.newAddress(!$('#shipping-address-select').val()); 
         } 
        </script> 
        <div class="buttons" id="shipping-buttons-container"> 
         <p class="back-link"> 
          <a href="#" onclick="Checkout.back(); return false;"><small>&laquo; </small>Back</a></p> 
         <input type="button" class="button-1 new-address-next-step-button" title="Continue" onclick="Shipping.save()" value="Continue" /> 
         <span id="shipping-please-wait" class="please-wait" style="display: none;"> Loading next step...</span> 
        </div> 
       </div> 
      </li> 

그러나 이것은 내 마지막 시도 : 심지어

$('#shipping-buttons-container').on('click', function() { 
    var me = $(this); 
    me.offtmp('click'); //disable the click event temporaraly while performing ajax request 
    //$.post(...).always(function() { 
    // me.ontmp('click'); //the ajax request is ready, now we can enable clicks again 
    //}); 
}); 

단지 경고를 얻기 위해 시도 팝업이 작동하지 않습니다. 어떤 제안?

+0

을 ''off' (http://api.jquery.com/off/)를 사용 해보세요 :'me.off ('click')' – mshsayem

답변

1

클릭 이벤트를 "일시적으로"사용하지 않도록 설정할 수 없습니다. 당신은 그것을 죽일 필요가 없습니다. 그래서, 그것을 죽여라. 그러나 9 이전의 IE 버전은 일반 브라우저와 동일한 방식으로 처리하지 않습니다. 클릭 기능 상단에서 다음을 수행하십시오.

if (e.preventDefault) { 
    // For modern browsers 
    e.preventDefault(); 
} 
else { 
    // For older IE browsers 
    e.returnValue = false; 
} 

이제 사용자 입력을 위해 메시지 상자/경고를 자유롭게 표시 할 수 있습니다. "아니오"/ "취소"라고 말하면 상자를 닫으십시오. 사용자가 수락하면 상자를 닫고 스크립트를 호출하여 사용자를 다음 섹션으로 보냅니다. 당신이 양식을 사용하지 않는,하지만 그 $('#formID').submit(); 될 것이다 (같은 같습니다

을 그냥 다시 클릭 기능으로 다시 입력하지해야

+0

굉장 해요. 고마워요, AM에서 시도해 볼게요. – sramsay

0

같은 것을 시도해보십시오..

$("#shipping-buttons-container").click(function() { 
    var me = $(this); 
    me.unbind("click");    
}) 
+0

아니요, 이 작동하지 않습니다. 나는 여전히 단추를 클릭 할 수 있습니다. – sramsay