ecshop自定义商品属性使用A美化后修改价格
ecshop 商品属性,默认使用 单选,多选 来实现,不美观,如果换成 A 标签或是其它 DIV 来排版,如何保证原来的功能可以使用。就是点击,或调整数量以后,重新计算价格。
<!-- {* 判断属性是复选还是单选 *} -->
<!-- {if $spec.attr_type eq 1} -->
<!-- {if $cfg.goodsattr_style eq 1} -->
<!-- {foreach from=$spec.values item=value key=key} -->
<a href="javascript:;" class="{if $key eq 0}hover{/if}" onclick="set_style({$value.id},'spec_{$spec_key}',this)">{$value.label}</a>
{if $key eq 0}
<input type="hidden" id="spec_{$spec_key}" name="spec_{$spec_key}" value="{$value.id}" />
{/if}
<!-- {/foreach} -->
这里只做 对 单选 修改的演示。 这里换成了 A , 加了一个 onclick事件。 当点击的时候,去修改 hidden 隐藏的值。
function set_style(val, spec, dom)
{
$(dom).parent().find("a").removeClass();
$(dom).addClass("hover");
document.getElementById(spec).value = val;
changePrice();
}
getSelectedAttributes 事件需要能支持 hidden ,所以要修改一下主要核心代码。
换成如下的
if (prefix == 'spec_' &&
(formBuy.elements[i].type == 'hidden'))
修改完毕了。 这样 加入购物车之后的功能也是正常的。