2014-12-31 5 views
0

두 개의 버튼 중 하나 (1)에 필요한 입력란 인 텍스트 필드가있는 양식이 있습니다. 첫 번째 (첫 번째) 버튼은 텍스트 필드의 코드를 내 상점의 장바구니 섹션에있는 제품에 적용합니다. 두 번째 (두 번째)는 카트 섹션의 모든 제품에서 모든 코드를 제거합니다.두 개 버튼 중 하나만 입력해야합니다.

이 문제를 해결하는 가장 좋은 방법은 무엇입니까?

Thx.

<div id="cart-coupon-menu" class="coupon-menu-hide"> 
<form id="discount-coupon-form" action="<?php echo $this->getUrl('checkout/cart/couponPost') ?>" method="post"> 
    <div class="discount"> 
     <div class="discount-form"> 
      <input type="hidden" name="remove" id="remove-coupone" value="0" /> 
      <div class="input-box"> 
       <input class="input-text" id="coupon_code" name="coupon_code" value="<?php echo $this->escapeHtml($this->getCouponCode()) ?>" placeholder="Enter a Coupon or Promo Code" autocomplete="off"/> 
      </div> 
      <div class="buttons-set"> 
       <button type="button" title="<?php echo $this->__('Apply Coupon') ?>" class="button" onclick="discountForm.submit(false)" value="<?php echo $this->__('Apply Coupon') ?>"><span><span><?php echo $this->__('Apply Coupon') ?></span></span></button> 
       <button type="button" title="<?php echo $this->__('Cancel Coupon') ?>" class="button" onclick="discountForm.submit(true)" value="<?php echo $this->__('Cancel Coupon') ?>"><span><span><?php echo $this->__('Cancel Coupon') ?></span></span></button> 
      </div> 
     </div> 
    </div> 
</form> 
</div> 

위 양식은 AJAX를 통해 일련 번호가 지정되고 컨트롤러로 설정되며 적절한 응답이 반환됩니다.

입력란이 null 인 경우 입력란을 필수 입력란으로 사용하고 첫 번째 입력란을 통해 제출을 거부하고 싶습니다. 그러나 이것이 null이면 두 번째 버튼은 여전히 ​​제출을 허용해야합니다. 텍스트가 입력 상자에 입력되면 둘 다 정상적으로 작동합니다.

현재 내가 이런 식으로 뭔가를하려고 해요 : 당신은 knockout 시도를 제공해야

<script type="text/javascript"> 
    //<![CDATA[ 
    var discountForm = new VarienForm('discount-coupon-form'); 
    discountForm.submit = function (isRemove) { 
     if (isRemove) { 
      $('coupon_code').removeClassName('required-entry'); 
      $('remove-coupone').value = "1"; 
     } else { 
      $('coupon_code').addClassName('required-entry'); 
      $('remove-coupone').value = "0"; 
     } 
     if(something where I identify if it is required and the field is null){return null;} 
     else{continue with ajax call;} 
+0

하지 않습니다. 데모 또는 코드를 보여 주면 더 좋을 것입니다. –

+0

@SampathLiyanage 내 질문에 몇 가지 버전을 만들 테니, 잠시만 기다려주세요. – easymoden00b

+0

누르는 버튼을 구별 할 수 없다는 문제가 있습니까? – xbakesx

답변

1

나는 그냥 같은 간단한 자바 스크립트 뭔가 생각 discountForm.submit(false) 그렇지 않으면 실행 : handleInvalid().

그리고 자바 스크립트 기능은 다음과 같습니다 분명

function isValid() { 
    var couponCode = document.getElementById('coupon_code').value; 

    return /* whatever logic you want here... */ 
} 

function handleInvalid() { 
    // do whatever you want to the coupon_code input to indicate it's required and pop up an error message 
    alert("Please enter a coupon code!"); 
} 
-1

. js 코드의 변경 사항에 따라보기 (html)를 업데이트합니다. 이 example을 참조하십시오. 그래서 기본적으로는 isValid() 반환 true의 경우, 실행 말한다 ...

<button type="button" title="<?php echo $this->__('Apply Coupon') ?>" class="button" onclick="isValid() ? discountForm.submit(false) : handleInvalid()" value="<?php echo $this->__('Apply Coupon') ?>"><span><span><?php echo $this->__('Apply Coupon') ?></span></span></button> 

는 내가 거기에 삼항 연산자를 사용 :

관련 문제