如果数量框为0,则禁用添加到购物车

时间:2017-03-29 08:52:38

标签: magento magento-1.9

我正在为我的问题寻找解决方案。我有类别列表,添加到购物车按钮和数量框。我需要在数量框0时禁用添加到购物车,并在1和更多时允许它。 我需要默认值0。 现在,当我点击添加到购物车按钮时,将一个产品添加到购物车。

此问题仅在类别列表中,而不在产品页面上。

我的代码来自/app/design/frontend/theme/theme/template/catalog/product/list.phtml

<?php  if ( !($product->getTypeInstance(true)->hasOptions($product)/*$_product->getData('has_options')*/ || $product->isGrouped()) ) :  ?>

                                <div class="qty-holder">
                                    <input type="text" name="qty" id="qty_<?php echo $_product->getId(); ?>" maxlength="12" value="<?php echo $product->getProductDefaultQty() * 1 ?>" title="<?php echo $this->__('Qty') ?>" class="input-text qty" />
                                    <div class="qty-changer">
                                        <a href="javascript:void(0)" class="qty_inc" style="height:34px; line-height:34px;"><i class="icon-up-dir"></i></a>
                                        <a href="javascript:void(0)" class="qty_dec" style="height:34px; line-height:34px;"><i class="icon-down-dir"></i></a>
                                    </div>
                                </div>
                            </form>
                            <?php $_productid == $_product->getId(); ?>

                            <a href="<?php if(!Mage::getStoreConfig("ajaxcart/addtocart/enablecategory", $code) && !Mage::getStoreConfig("porto_settings/category/qty_field", $code)): ?><?php echo $this->getAddToCartUrl($_product) ?><?php else: ?>javascript:void(0)<?php endif; ?>" class="addtocart" title="<?php echo $this->__('Add to Cart') ?>" <?php if(Mage::getStoreConfig("ajaxcart/addtocart/enablecategory", $code)):?>onclick="setLocationAjax(this,'<?php echo $this->getAddToCartUrl($_product) ?>','<?php echo $_product->getId(); ?>')"<?php elseif(Mage::getStoreConfig("porto_settings/category/qty_field", $code)): ?>onclick="document.getElementById('addtocart_form_<?php echo $_product->getId(); ?>').submit()"<?php endif; ?>><i class="icon-cart"></i><span>&nbsp;<?php echo $this->__('Add to Cart') ?></span></a>

                        <?php else : ?>
                            <a href="<?php if(Mage::getStoreConfig("ajaxcart/addtocart/enablecategory", $code)):?>javascript:showOptions('<?php echo $_product->getId()?>')<?php else: ?><?php echo $this->getAddToCartUrl($_product) ?><?php endif; ?>" class="addtocart" title="<?php echo $this->__('Add to Cart') ?>"><i class="icon-cart"></i><span>&nbsp;<?php echo $this->__('Add to Cart') ?></span></a>
                            <a href='<?php echo $this->getUrl('ajaxcart/index/options',array('product_id'=>$_product->getId()));?>' class='fancybox' id='fancybox<?php echo $_product->getId()?>' style='display:none'>Options</a>
                        <?php endif;?>

有什么想法吗?

谢谢!

2 个答案:

答案 0 :(得分:0)

也许是这样的(javascript):

jQuery('.addtocart').each(function() {
    var $self = jQuery(this),
        oldOnClick = $self.attr('onclick'),
        $product = $self.closest('.item');

    $self.attr('data-onclick', oldOnClick).removeAttr('onclick');
    $self.off('click').on('click', function() {
        if($product.find('.input-text.qty').val() < 1)
            return false;
        else
            eval(jQuery(this).data('onclick'));
    });
});

当用户点击“添加到购物车”时,请检查数量值是否> = 1.

编辑:修复一些事情..

答案 1 :(得分:0)

将此条件设置为禁用addtocart并在添加到购物车的锚标记中添加disabled =“disbled”

if($product->getProductDefaultQty() * 1 == 0){
   <a disabled = "disabled"></a>
}
else{
  // your normal code here for add to cart
}