Add to cart button not working

2019-09-15 02:40发布

问题:

I'm having an issue with Magento 1.* based on the add to cart button:

When i try push the button i get Jquery errors. Does anyone know what these errors are and how to solve it?

The error is: Uncaught TypeError: Cannot read property 'validate' of undefined(…)

My view.phtml looks like this:

    <?php
/**
 * Magento
 *
 * NOTICE OF LICENSE
 *
 * This source file is subject to the Academic Free License (AFL 3.0)
 * that is bundled with this package in the file LICENSE_AFL.txt.
 * It is also available through the world-wide-web at this URL:
 * http://opensource.org/licenses/afl-3.0.php
 * If you did not receive a copy of the license and are unable to
 * obtain it through the world-wide-web, please send an email
 * to license@magentocommerce.com so we can send you a copy immediately.
 *
 * DISCLAIMER
 *
 * Do not edit or add to this file if you wish to upgrade Magento to newer
 * versions in the future. If you wish to customize Magento for your
 * needs please refer to http://www.magentocommerce.com for more information.
 *
 * @category   design_blank
 * @package    Mage
 * @copyright  Copyright (c) 2008 Irubin Consulting Inc. DBA Varien (http://www.varien.com)
 * @license    http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
 */

/**
 * Product view template
 *
 * @see Mage_Catalog_Block_Product_View
 * @see Mage_Review_Block_Product_View
 */
?>
<?php $_helper = $this->helper('catalog/output'); ?>
<?php $_product = $this->getProduct(); ?>

    <h1><?php echo $_helper->productAttribute($_product, $this->htmlEscape($_product->getName()), 'name') ?></h1>

    <div class="product-essential">

                <div class="add-to-box">


                </div>



        <div class="product-img-box">
            <?php echo $this->getChildHtml('media') ?>
        </div>

        <div class="product-shop">

            <?php if ($_product->getShortDescription()):?>
                <div class="short-description std">
                    <?php echo $_helper->productAttribute($_product, nl2br($_product->getShortDescription()), 'short_description') ?>
                </div>
            <?php endif;?>
            <div class="essential-data">
                <?php echo $this->getChildHtml('product_type_data') ?>
                <?php echo $this->getChildHtml('tierprices') ?>
            </div>
            <?php if ($this->canEmailToFriend()): ?>
                <a href="<?php echo $this->helper('catalog/product')->getEmailToFriendUrl($_product) ?>"><?php echo $this->__('Email to a Friend') ?></a>
            <?php endif; ?>

            <?php echo $this->getReviewsSummaryHtml($_product, false, true)?>
            <?php echo $this->getChildHtml('alert_urls') ?>

                        <?php echo $this->getChildHtml('addtocart') ?>

            <?php echo $this->getChildHtml('other');?>

            <?php if ($_product->isSaleable() && $this->hasOptions()):?>
                <?php echo $this->getChildChildHtml('container1', '', true, true) ?>
            <?php endif;?>
            <a class="prev-page" onclick="javascript:history.go(-1)" href="#"><?php echo $this->__('Terug naar vorige pagina'); ?></a>

        </div>
        <div class="clearer"></div>

        <?php if ($_product->isSaleable() && $this->hasOptions()):?>
            <?php echo $this->getChildChildHtml('container2', '', true, true) ?>
        <?php endif;?>
    </form>
    <script type="text/javascript">
    //<![CDATA[
            var productAddToCartForm = new VarienForm('product_addtocart_form');
            productAddToCartForm.submit = function(){
                    if (this.validator.validate()) {
                            this.form.submit();
                    }
            }.bind(productAddToCartForm);
    //]]>
    </script>
    </div>

    <div class="product-collateral">
        <?php if ($_description = $this->getChildHtml('description')):?>
            <div class="description">
                <h2><?php echo $this->__('Product Description') ?></h2>
                <?php echo $_description ?>
            </div>
        <?php endif;?>
        <?php if ($_additional = $this->getChildHtml('additional')):?>
            <div class="additional">
                <?php echo $_additional ?>
            </div>
        <?php endif;?>
        <?php echo $this->getChildHtml('upsell_products') ?>
        <?php echo $this->getChildHtml('product_additional_data') ?>
    </div>
</div>

And my addtocart.phtml looks like this:

<?php
/**
 * Magento
 *
 * NOTICE OF LICENSE
 *
 * This source file is subject to the Academic Free License (AFL 3.0)
 * that is bundled with this package in the file LICENSE_AFL.txt.
 * It is also available through the world-wide-web at this URL:
 * http://opensource.org/licenses/afl-3.0.php
 * If you did not receive a copy of the license and are unable to
 * obtain it through the world-wide-web, please send an email
 * to license@magentocommerce.com so we can send you a copy immediately.
 *
 * DISCLAIMER
 *
 * Do not edit or add to this file if you wish to upgrade Magento to newer
 * versions in the future. If you wish to customize Magento for your
 * needs please refer to http://www.magentocommerce.com for more information.
 *
 * @category   design_blank
 * @package    Mage
 * @copyright  Copyright (c) 2008 Irubin Consulting Inc. DBA Varien (http://www.varien.com)
 * @license    http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
 */
?>

<?php $_product = $this->getProduct() ?>

<?php if($_product->isSaleable()): ?>
    <fieldset class="add-to-cart">
        <legend><?php echo $this->__('Add Items to Cart') ?></legend>
        <?php if(!$_product->isGrouped()): ?>
        <label for="qty"><?php echo $this->__('Qty') ?>:</label>
                <?php 
                $multiplier = $_product->getVerpakkingseenheid();
                if (!$multiplier){
                    $multiplier = 1;
                }
                $iselect = $multiplier;
                $max_package = 20;
                $ix = 1;
                ?>
                <select name="qty" id="qty" maxlength="12">
                    <? for ($ix; $ix <= $max_package; $ix++){
                        echo '<option value="' . $iselect . '">' . $iselect . '</option>';
                        $iselect = $iselect + $multiplier;

                    } ?>
                </select>
        <?php endif; ?>
        <button type="button" class="button" onclick="productAddToCartForm.submit()"><span><?php echo $this->__('Add to Cart') ?></span></button>
    </fieldset>
<?php endif; ?>

In the attachment you'll find the errorshttp://www.wijnmaat.nl/errors.png

回答1:

You are using ajax cart aur someshadobox i think there is some js file is missing in your folder thats why add to cart is not working please check which file js file is missing and include it or you simply rename your add to cqart and check it is working or not.