【问题标题】:Magento Custom Options - make every first radio button checkedMagento 自定义选项 - 检查每个第一个单选按钮
【发布时间】:2011-07-15 19:25:54
【问题描述】:

我们有一个 Magento 商店,其中一些产品具有自定义选项作为单选按钮。默认情况下,每个非必需选项都会选中第一个按钮,但不会选中必需的按钮。我怎样才能检查它们?

我已经安装了扩展依赖自定义选项(图库)。这使我可以选择设置默认情况下应检查哪个自定义选项,但这不会将价格更新为正确的值。

感谢您的帮助

【问题讨论】:

    标签: magento button options radio


    【解决方案1】:

    正如 Gordon 所说,您可以使用 jQuery,但要更新价格,您需要在检查时运行 opConfig.reloadPrice() 函数。所以代码会是这样的:

    var $j = jQuery.noConflict();
    
    $j(document).ready(function(){
    
    // auto selects the first input with radio class
    $j('.options-list input.radio:first').attr('checked','checked');
    opConfig.reloadPrice();
    });
    

    【讨论】:

      【解决方案2】:

      转到 app\code\core\Mage\Catalog\Block\Product\View\Options\Type\select.php

      您可以在此处找到您的自定义选项标题并使用您的标题设置 if 条件。

      例如,我的自定义选项标题是价格:

      if($this->htmlEscape($_option->getTitle()=='Price'))

      【讨论】:

        【解决方案3】:

        此解决方案可能不是最适合您,但我遇到了同样的问题,并且刚刚解决了它。

        首先,我必须使用一种复杂的方法在 Magento 中正确安装 jQuery。我相信部分问题来自于最新的 Magento 版本过时的 Spriptaculous 效果文件。所以我去了网站 www.script.aculo.us 并下载了最新版本。然后我拉出 effects.js 文件并用它来覆盖 effects.js :

        [Magento]/js/scriptaculous

        然后我从 jQuery 站点下载了 jQuery 并在以下位置创建了一个名为 jquery 的文件夹:

        [Magento]/js/

        并将 jquery 文件转储到那里。

        然后我打开了文件:

        [Magento]/app/design/frontend/default/default/layout/page.xml

        并找到了如下所示的行列表:

        <action method="addJs"><script>scriptaculous/effects.js</script></action>
        

        我复制了其中一个并将路径替换为 jquery 文件的路径,如下所示。

        <action method="addJs"><script>jquery/jquery-1.6.1.min.js</script></action>
        

        现在 jQuery 将包含在您的所有页面中。

        重要!你必须在 noConflict() 模式下运行 jQuery。所以这就是 JS 的样子(对我而言),它可以使用自定义选项在任何页面上选择第一个单选按钮。

        var $j = jQuery.noConflict();
        
        $j(document).ready(function(){
        
        // auto selects the first input with radio class
        $j('.options-list input.radio:first').attr('checked','checked');
        
        });
        

        我将该文件保存到我的 jquery 文件夹中,并以与链接到 jQ 库相同的方式链接到它。

        刷新了我的缓存,瞧!

        我希望这会有所帮助!

        【讨论】:

          【解决方案4】:

          有一个名为optionsConfig.reloadPrice() 之类的javascript 函数,它在调用时会根据选项更新价格。您可能需要在 dom:loaded 事件期间触发此事件。

          【讨论】:

          • 我已经试过了:' ' 在 /template/catalog/product/view.phtml 中。它不起作用。我做错了什么?
          猜你喜欢
          • 1970-01-01
          • 2011-04-28
          • 2017-11-16
          • 2013-04-10
          • 1970-01-01
          • 2016-10-10
          • 2016-08-13
          • 1970-01-01
          • 2014-04-13
          相关资源
          最近更新 更多