Javascript Magento单页签出-获取类型错误:签出未定义(在opcheckout.js中)
大约一周前,单页签出还可以正常工作,现在不行了。毫无疑问,我是错的,因为我仍然有一个与管理后端相关的问题,我可能在处理这个问题的过程中不知怎么搞砸了 在任何情况下,当(登录、注册)用户单击单页签出的账单信息步骤中的“继续”按钮时,发生的情况就好像没有单击按钮一样。它不会进入下一步。错误控制台(在Firefox中)报告“TypeError:checkout未定义”,并在opcheckout.js中显示第303行 这个问题非常类似,但(a)一个问题没有得到真正的回答,(b)我没有足够高的分数来评论(或补充问题) 虽然有一个解决方案会很好,但我也在努力学习如何亲自调试它。我已经应用了很多通过谷歌搜索找到的magento解决方案(针对其他问题),尽管它们有效,这是最重要的,但我开始希望能够解决我自己的问题。也许最终还能帮助别人Javascript Magento单页签出-获取类型错误:签出未定义(在opcheckout.js中),javascript,jquery,magento,checkout,Javascript,Jquery,Magento,Checkout,大约一周前,单页签出还可以正常工作,现在不行了。毫无疑问,我是错的,因为我仍然有一个与管理后端相关的问题,我可能在处理这个问题的过程中不知怎么搞砸了 在任何情况下,当(登录、注册)用户单击单页签出的账单信息步骤中的“继续”按钮时,发生的情况就好像没有单击按钮一样。它不会进入下一步。错误控制台(在Firefox中)报告“TypeError:checkout未定义”,并在opcheckout.js中显示第303行 这个问题非常类似,但(a)一个问题没有得到真正的回答,(b)我没有足够高的分数来评论(
因此,在这种情况下,考虑到“未定义中的签出”,我如何找到应该在哪里定义它呢?这里的解决方案是
- 步骤标题
- 台阶
- 数
<ol id="checkoutSteps" class="one-page-checkout">`<?php $i=0; foreach($this->getSteps() as $_stepId => $_stepInfo): ?>
<?php if (!$this->getChild($_stepId) || !$this->getChild($_stepId)->isShow()): continue; endif; $i++ ?>
<li id="opc-<?php echo $_stepId ?>" class="section <?php echo !empty($_stepInfo['allow'])?'allow':'' ?> <?php echo !empty($_stepInfo['complete'])?'saved':'' ?>">
<div class="step-title">
<h3><span class="step-count"><?php echo $i ?></span> <?php echo $_stepInfo['label'] ?></h3><a href="#"><?php echo $this->__('Edit') ?></a>
</div>
<div id="checkout-step-<?php echo $_stepId ?>" class="step <?php if($_stepId=='shipping_method'): ?>-no-padding<?php endif; ?> a-item" style="display:none;">
<?php echo $this->getChildHtml($_stepId) ?>
</div>
</li>
<?php endforeach ?>
</ol>
我称之为“盒子”,但就Magento而言,它需要是“步骤”。由于您的css类可能有所不同,因此需要复制
我希望这对某人有帮助
顺便说一下,我是这样想的:
这是一个冗长而乏味的过程,但它似乎可以工作。在我的例子中,
/skin/frontend/base/default/js/opcheckout.js
文件与pspahn建议的/skin/frontend/[yourpackage]/[yourtheme]/js/opcheckout.js
文件不匹配。我的主题中的.js文件是完全空白的。复制内容,把一切都搞定了。在此处进行评论,以便于其他可能正在搜索的用户查看 当我切换到默认主题时,这个问题就消失了。但这并不意味着我的问题得到了解决,它只是把它缩小了一点:如果使用了基本包,一切都会正常。但是我当然希望我的定制包能够正常工作(就像以前一样)。试着在/skin/frontend/base/default/js/opcheckout.js
和/skin/frontend/[yourpackage]/[yourtheme]/js/opcheckout.js
文件(如果后者存在的话)上做一个比较。谢谢:这是一个好主意。不幸的是,它们完全匹配。但我想我可以在一些地方使用这条攻击线。如果我发现了什么,我会告诉你的。我发现有一个先前的错误,可能是它导致了这个错误。当我从购物车中单击“继续结帐”时,它会产生错误“TypeError:registry is undefined”,并显示指向prototype.js的链接。我以前没有注意到这一点,因为即使有错误,我还是按预期登陆了账单信息页面。
.one-page-checkout .box { border:1px solid #bbb6a5; border-top:0; padding:15px 20px; background:#faf7ee; }
.one-page-checkout .step { border:1px solid #bbb6a5; border-top:0; padding:15px 20px; background:#faf7ee; }