simpleCart(js) 'beforeAdd' 事件用于多个项目

simpleCart(js) 'beforeAdd' event for multiple Items

本文关键字:用于 项目 事件 beforeAdd js simpleCart      更新时间:2023-09-26

我正在努力使simpleCart(js)"beforeAdd"事件适用于多个选项。
我有 3 个下拉菜单,如果不是所有选项都满足除 nul 之外的一些值,我需要阻止任何项目添加(到购物车)。
一个工作正常,但多个呢?

对于单个选项:

<script>
simpleCart.bind( 'beforeAdd' , function( item ){
if( item.get( 'size') === 'nul'){
return false; 
}
});
</script>


下拉菜单:

    <div class="simpleCart_shelfItem">
    <p>
    <h2 class="item_name" style="display:none">TEST</h2>
    <select id="sizeSelect" class="item_size">
    <option value="nul">Please choose size</option>
    <option value="Small">Small</option>
    <option value="Medium">Medium</option>
    <option value="Large">Large</option>
    <option value="Super Brain">Super brain</option>
    </select>
    <select id="shippingSelect">
    <option value="nul">Please choose shipping</option>
    <option value="ups">UPS Standard 25€</option>
    <option value="mail">Standard Mail 10€</option>
    </select>
    <select id="destinationSelect" class="item_price">
    <option value="nul">Please choose destination</option>
    <option value="290.00">EU</option>
    <option value="220.00">World</option>
    </select>
    </p>
    <p><button class="item_add">Add to Cart</button></p>

更新我还使用以下警报脚本 do me 由 John Rummel 提供

<script type="text/javascript">
 $('.item_add').click(function () {
 if($('#sizeSelect').val().match(/nul/)) return alert("Please choose a size");
 if($('#shippingSelect').val().match(/nul/)) return alert("Please choose shipping type");
 if($('#destinationSelect').val().match(/nul/)) return alert("Please enter a destination");
 });
 </script>

也许可以添加一些东西?

    $(".item_add").on("click", function(e) {
      if(e.target.attr("value") == 'nul') return false;
    });

试试这个。抓住事件,如果你的表情不真实,就停止冒泡