2016-04-14 130 views
0

我試圖觸發variationCheck函數上的選擇更改,但有沒有辦法可以在觸發該函數之前選擇兩個選項?更改多個選擇選項後jQuery觸發事件

有點像驗證,但如果用戶決定在驗證後決定更改選擇選項,仍然可以一次又一次地觸發該功能。我希望這是有道理的。

任何幫助將有所幫助!謝謝。

Screenshot

JS

$("select[name=attribute_covers],select[name=attribute_extras]").change(function(){ 
      var get_product_id = $(this).closest('form').data('product_id').replace('form_',''); 
      variationCheck(get_product_id); 
     }); 

     function variationCheck(get_product_id) { 
      for (var i = 0; i < variationArray.length; i++) { 
       if (variationArray[i].product_id === get_product_id) { 
        alert(get_product_id); 
       }; 
      }; 
     }; 

HTML

我能想到的
<table class="variations" cellspacing="0"> 
    <tbody> 
     <tr> 
      <td class="label"> 
       <label for="covers">Covers</label> 
      </td> 
      <td class="value"> 
       <select id="covers" class="" name="attribute_covers" data-attribute_name="attribute_covers"> 
        <option value="" selected="selected">Choose an option</option> 
        <option value="5" class="attached enabled">5</option> 
        <option value="6" class="attached enabled" selected="selected">6</option> 
        <option value="7" class="attached enabled">7</option> 
        <option value="8" class="attached enabled">8</option> 
        <option value="9" class="attached enabled">9</option> 
        <option value="10" class="attached enabled">10</option> 
       </select> 
      </td> 
     </tr> 
     <tr> 
      <td class="label"> 
       <label for="extras">Extras</label> 
      </td> 
      <td class="value"> 
       <select id="extras" class="" name="attribute_extras" data-attribute_name="attribute_extras"> 
        <option value="" selected="selected">Choose an option</option> 
        <option value="Fruit" class="attached enabled">Fruit</option> 
        <option value="Cake" class="attached enabled">Cake</option> 
       </select><a class="reset_variations" href="#" style="visibility: visible;">Clear</a> </td> 
     </tr> 
    </tbody> 
</table> 
+0

如果你顯示你的html,這將很容易 – Harish

回答

1

一種方法是檢查這兩個選擇元素的值並調用驗證方法,如果兩者都選擇:

$("select[name=attribute_covers],select[name=attribute_extras]").change(function(){ 
      var get_product_id = $(this).closest('form').data('product_id').replace('form_',''); 
      if($("select[name=attribute_covers]").val() != "" && $("select[name=attribute_extras]").val() != ""){ 
      variationCheck(get_product_id); 
      } 
     }); 

     function variationCheck(get_product_id) { 
      for (var i = 0; i < variationArray.length; i++) { 
       if (variationArray[i].product_id === get_product_id) { 
        alert(get_product_id); 
       }; 
      }; 
     }; 
相關問題