禁用在Magento的可配置产品中选择一个选项

时间:2014-02-25 05:57:32

标签: magento

我想禁用在可配置产品下拉列表中选择一个选项。它应该自动选择默认产品。编辑的地点和内容?

1 个答案:

答案 0 :(得分:4)

您可以在以下文件中进行更改。

app/design/frontend/YOUR_PACKAGE/YOUR_THEME/template/catalog/product/view/type/options/configurable.phtml

更好地使用“模板路径提示”从后端启用。您将知道需要定制的内容和位置。

<强>更新

打开此文件:

  

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

正下方

var spConfig = new Product.Config(< ?php echo $this->getJsonConfig() ?>);

添加此JavaScript代码:

//we create new function
spConfig.setInitialState = function(dropdown_id)
{
//select dropdown
var dropdown = $(dropdown_id);
//remove empty option from dropdown so it is not selectable after initial selection
dropdown[0].remove();
//change selections in dropdowns
for(index = 0; index < dropdown.length; index++)
{
if(dropdown[index].value != "")
{
dropdown.selectedIndex = index;
var element = dropdown;
var event = 'change';
//fire events
if(document.createEventObject)
{
var evt = document.createEventObject();
return element.fireEvent('on'+event,evt)
}
else
{
var evt = document.createEvent("HTMLEvents");
evt.initEvent(event, true, true );
return !element.dispatchEvent(evt);
}
}
}
};
<?php foreach($_attributes as $_attribute): ?>
spConfig.setInitialState("attribute< ?php echo $_attribute->getAttributeId() ?>")
<?php endforeach; ?>

有关详情,请参阅Here及更多Here

完整工作档案

  

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

<?php
$_product    = $this->getProduct();
$_attributes = Mage::helper('core')->decorateArray($this->getAllowAttributes());
?>
<?php if ($_product->isSaleable() && count($_attributes)):?>
    <dl>
    <?php foreach($_attributes as $_attribute): ?>
        <dt><label class="required"><em>*</em><?php echo $_attribute->getLabel() ?></label></dt>
        <dd<?php if ($_attribute->decoratedIsLast){?> class="last"<?php }?>>
            <div class="input-box">
                <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>
              </div>
        </dd>
    <?php endforeach; ?>
    </dl>
    <script type="text/javascript">
        var spConfig = new Product.Config(<?php echo $this->getJsonConfig() ?>);
      //we create new function
        spConfig.setInitialState = function(dropdown_id)
        {
        //select dropdown
        var dropdown = $(dropdown_id);
        //remove empty option from dropdown so it is not selectable after initial selection
        dropdown[0].remove();
        //change selections in dropdowns
        for(index = 0; index < dropdown.length; index++)
        {
        if(dropdown[index].value != "")
        {
        dropdown.selectedIndex = index;
        var element = dropdown;
        var event = 'change';
        //fire events
        if(document.createEventObject)
        {
        var evt = document.createEventObject();
        return element.fireEvent('on'+event,evt)
        }
        else
        {
        var evt = document.createEvent("HTMLEvents");
        evt.initEvent(event, true, true );
        return !element.dispatchEvent(evt);
        }
        }
        }
        };
        <?php foreach($_attributes as $_attribute): ?>
        spConfig.setInitialState("attribute<?php echo $_attribute->getAttributeId() ?>")
        <?php endforeach; ?>
    </script>
<?php endif;?>