【问题标题】:Add to cart button not working添加到购物车按钮不起作用
【发布时间】:2017-04-18 06:25:29
【问题描述】:

我在使用 Magento 1.* 时遇到问题,基于添加到购物车按钮:

当我尝试按下按钮时,我得到 Jquery 错误。有谁知道这些错误是什么以及如何解决?

错误是:Uncaught TypeError: Cannot read property 'validate' of undefined(…)

我的 view.phtml 看起来像这样:

    <?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>

我的 addtocart.phtml 看起来像这样:

<?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; ?>

在附件中你会发现errorshttp://www.wijnmaat.nl/errors.png

【问题讨论】:

  • 这个问题有点过于宽泛,恐怕无法在 Stack Overflow 上很好地工作。无论哪种方式,一个好的第一步是始终谷歌错误消息 - 解决方案通常在那里。 jQuery is not defined 强烈暗示 jQuery 尚未包含在当前文档中。其余错误可能具有相同的根本原因。 (还要记住在问题中包含错误,作为文本!所以问题需要是自给自足的,否则如果您的图像离线,问题对其他人来说将毫无价值。)

标签: jquery magento shopping-cart cart


【解决方案1】:

您正在使用 ajax cart aur someshadobox 我认为您的文件夹中缺少一些 js 文件,这就是添加到购物车不起作用的原因 请检查缺少哪个文件 js 文件并包含它,或者您只需将您的添加重命名为 cqart 和检查它是否工作。

【讨论】:

    猜你喜欢
    • 2016-11-26
    • 1970-01-01
    • 2023-02-18
    • 1970-01-01
    • 1970-01-01
    • 2013-10-08
    • 1970-01-01
    • 2016-09-28
    相关资源
    最近更新 更多