2014-12-31 54 views
0

我有一個表單,其文本字段是我的兩個(2)按鈕中的一個(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設置爲控制器,並返回相應的響應。

當輸入框爲空時,我希望輸入框充當必填字段並禁止通過第一個按鈕進行提交。但是,當它爲空時,第二個按鈕應該仍然允許提交。當文本輸入到輸入框時,它們都表現正常。

目前,我試圖做這樣的事情:

<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

我認爲這只是一個簡單的JavaScript是這樣的:

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

我曾經在那裏三元操作符......所以基本上說,如果isValid()返回true,執行:discountForm.submit(false)否則執行:handleInvalid()

然後JavaScript函數是:

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

你應該給knockout一試。它根據你的js代碼的變化更新你的視圖(html)。請參閱此example

相關問題