Я изо всех сил стараюсь, чтобы событие simpleCart (js) "beforeAdd" работало для нескольких параметров.
У меня есть 3 раскрывающихся меню, и мне нужно предотвратить добавление каких-либо предметов (в корзину), если не все опции имеют некоторое значение, кроме nul.
Прекрасно работает, но как много?
Для одного варианта:
<script>
simpleCart.bind( 'beforeAdd' , function( item ){
if( item.get( 'size') === 'nul'){
return false;
}
});
</script>
Dropdowns:
<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>
UPDATE Я также использую следующий скрипт оповещения, предоставленный мне Джоном Руммелем
<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;
});
Попробуй это. Поймать событие, и если ваше выражение не верно, прекратите пузыриться