簡體   English   中英

更改多個選擇選項后的jQuery觸發事件

[英]jQuery trigger event after changing multiple select options

我正在嘗試在選擇更改上觸發variationCheck函數,但是有什么方法可以在觸發函數之前先選擇兩個選擇選項?

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

任何幫助都會有所幫助! 謝謝。

屏幕截圖

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>

我能想到的一種方法是同時檢查Select元素的值和調用驗證方法(如果兩者均被選中):

$("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);
                };
            };
        };

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM