【问题标题】:Set default value on configurable drop down in magento在magento中的可配置下拉菜单上设置默认值
【发布时间】:2014-07-24 12:17:08
【问题描述】:

我有一个具有 3 个选项的可配置产品 - 这是产品页面上下拉菜单的外观。

Bundle Deals            

* Required Fields
Choose an Option...
- Single Product £10
- 5 Product Bundle £50
- 10 Product Bundle £100

页面加载的默认值为£10.00,但如果我点击添加到购物车,它会标记为 - * Required Fields 并提示用户从下拉列表中选择一个选项。

默认情况下,我希望下拉菜单加载 - Single Product £10 作为默认值。

希望这一切都有意义吗?我在使用的 Magento 1.9 CE 版本中找不到此功能

最终编辑>>感谢大家的帮助 - 得到了修复 - 非常高兴!访问链接.. 类似于此处的建议,但代码中的某些内容似乎对我有用

http://iamvikram.com/magento-remove-choose-an-option-from-configurable-products-dropdown/

谢谢你的消息已邮寄:)

【问题讨论】:

  • magento.stackexchange.com上可能会有一些运气
  • 很高兴你把它整理好了。我还想从下拉列表中删除选择一个选项,因为如果需要该选项,它就没有用了。

标签: javascript php magento configurable-product


【解决方案1】:

将以下文件复制到本地

/app/design/frontend/default/mytheme/template/catalog/product/view/type/options/configurable.phtml


<select name="super_attribute[<?php echo $_attribute->getAttributeId() ?>]" id="attribute<?php echo $_attribute->getAttributeId() ?>" class="required-entry super-attribute-select">
<option><?php echo $this->__('Choose an Option...') ?></option>
</select>

它显示'Choose an Option...'作为默认值

您可以像下面这样更改它,以简单地选择您的选择中的第一个真实元素:

$$('#attribute525 option')[1].selected = true;

检查您的attributeid。以上只是一个例子。

【讨论】:

  • 谢谢@Slimshadddyyy - 不能让它工作..如果我将文本从“选择一个选项......”更改为“选择一个产品......”仍然是旧的消息选择一个选项来在下拉框中..我已经刷新了缓存和索引..也许另一个文件正在执行该功能..?我添加了 '$$('#attribute525 option')[1].selected = true;' - 还在看这个
  • @dan_code89 在您的产品页面上,检查下拉菜单并检查 select 的属性 ID。对我来说是attribute502。对你来说,它可能是别的东西。通过attributeid
【解决方案2】:

在您的 magento 管理员中导航到 Catalog-&gt;Attributes-&gt;Manage Attributes 并搜索您的属性。

点击编辑并选择NoValues required.

希望它会起作用。

JQuery 到默认选择第一个值是 -

jQuery('#attribute135>option:eq(1)').attr('selected', true);

【讨论】:

  • 我们需要选择第一个选项作为默认选择而不是通过验证
  • 好的,所以你有 3 个属性,你想选择第一个选项作为默认选择所有 3 个属性?
  • 谢谢 SlimShadddyyy - 我试过了 - 我仍然被标记为必填字段。
  • 如果您只是从 Magento 产品视图上的自定义选项下拉菜单中删除 Please Select 消息并选择第一个选项作为默认选项怎么办?
  • 是的 - 如果它可以选择第一个属性作为默认值,我会很高兴 :) 或者如果我可以关闭验证(必填字段),那也很棒 - 但我认为可配置产品是总是必需的..
【解决方案3】:

如果您有 2 个以上的选项,这可能会变得很棘手(这很令人困惑,但您上面描述的是 1 个选项和 3 个选项),颜色和尺寸说。假设 Color 是第一个 Option,一旦选择了 Color,Size 的选择就会更新。

例如,您有一件尺寸为红色 (S,L) 和蓝色 (M,L) 的衬衫,一旦您选择蓝色,Magento 就会观察颜色选项的“onChange”事件并更新尺寸M,L的选项。

为了在 PrototypeJS 中正确完成,我会这样做:

<script type='text/javascript>
var spConfig = new Product.Config(<?php echo $this->getJsonConfig() ?>);

        document.observe('dom:loaded', function() {
            var el = $('attribute<?php echo $_attribute->getAttributeId() ?>');
            el.selectedIndex = 1;
            el[0].remove();
            if ("createEvent" in document) {
                var ev = document.createEvent("HTMLEvents");
                ev.initEvent("change", false, true);
                el.dispatchEvent(ev);
            } else {
                el.fireEvent("onchange");
            }  
</script>

configurable.phtml,请注意fireEvent/dispatchEvent。 el[0].remove 将摆脱“选择一个选项..”

这是我所知道的侵入性最小的方法

【讨论】:

  • 已经尝试过这个@William Tran - 对不起,我无法让它工作.. 错误消息... 你能解释一下它和 fireEvent 吗? 我不是一个 JavaScript 作家.. 只是 HTML 和 CSS 是我的主要内容.. 非常有义务在这里找到解决方案:/
  • 我的答案是针对具有一个选项的可配置产品:您必须在访问脚本之前填充 $_attribute。
【解决方案4】:
Open app\design\frontend\[your package]\[your theme]\template\catalog\product\view\type\options\configurable.phtml

现在在 :-

之后添加以下 java 脚本代码
var spConfig = new Product.Config(<?php echo $this->getJsonConfig() ?>);


function fireEvent(element,event){

if (document.createEventObject){

// dispatch for IE

var evt = document.createEventObject();

return element.fireEvent('on'+event,evt)

}

else{

// dispatch for firefox + others

var evt = document.createEvent("HTMLEvents");

evt.initEvent(event, true, true ); // event type,bubbling,cancelable

return !element.dispatchEvent(evt);

}

}

Event.observe(window, 'load', function() {

spConfig.settings[0].selectedIndex = 1;

obj = spConfig.settings[0]; // this grabs the first select item

Event.observe(obj,'change',function(){});

fireEvent(obj,'change'); // this simulates selecting the first option, which triggers

spConfig.settings[1].selectedIndex = 1; // this selects the first option of the second attribute drop menu
});

【讨论】:

    猜你喜欢
    • 2018-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-24
    • 1970-01-01
    • 2018-05-25
    • 2019-09-25
    相关资源
    最近更新 更多