IE8中的Magento产品页面:默认值添加到购物车增量,忽略数量字段。 form.js第266行错误

时间:2013-06-12 05:20:57

标签: php javascript magento

当"添加到购物车"时,默认的form.js文件似乎是错误的。点击。这可以防止正确传递数量字段的值。 Magento代替默认值。此脚本没有错误,数量字段在其他浏览器中也可以正常工作。

此外,当我切换回默认主题时,添加到购物车按钮正常工作。关于我应该从哪里开始的任何想法。这里有什么突出的IE8友好吗?我还没有修改任何添加到购物车功能,也没有修改form.js文件。

更新:我有一个browserstack帐户。调试显示VarienForm是未定义的,它会抛出两个"" productAddToCartForm'是null或不是对象"错误。定义VarienForm的Form.js正在标题中加载,因此它应该可用于内联JS。

因为您无法在此处看到有关行的行号:

this.regionSelectEl.options.add(option);

这是功能:

update: function()
{
    if (this.regions[this.countryEl.value]) {
        var i, option, region, def;

        def = this.regionSelectEl.getAttribute('defaultValue');
        if (this.regionTextEl) {
            if (!def) {
                def = this.regionTextEl.value.toLowerCase();
            }
            this.regionTextEl.value = '';
        }

        this.regionSelectEl.options.length = 1;
        for (regionId in this.regions[this.countryEl.value]) {
            region = this.regions[this.countryEl.value][regionId];

            option = document.createElement('OPTION');
            option.value = regionId;
            option.text = region.name.stripTags();
            option.title = region.name;

            if (this.regionSelectEl.options.add) {
                this.regionSelectEl.options.add(option); //***this is line 266***
            } else {
                this.regionSelectEl.appendChild(option);
            }

            if (regionId==def || (region.name && region.name.toLowerCase()==def) ||
                (region.name && region.code.toLowerCase()==def)
            ) {
                this.regionSelectEl.value = regionId;
            }
        }

        if (this.disableAction=='hide') {
            if (this.regionTextEl) {
                this.regionTextEl.style.display = 'none';
            }

            this.regionSelectEl.style.display = '';
        } else if (this.disableAction=='disable') {
            if (this.regionTextEl) {
                this.regionTextEl.disabled = true;
            }
            this.regionSelectEl.disabled = false;
        }
        this.setMarkDisplay(this.regionSelectEl, true);
    } else {
        if (this.disableAction=='hide') {
            if (this.regionTextEl) {
                this.regionTextEl.style.display = '';
            }
            this.regionSelectEl.style.display = 'none';
            Validation.reset(this.regionSelectEl);
        } else if (this.disableAction=='disable') {
            if (this.regionTextEl) {
                this.regionTextEl.disabled = false;
            }
            this.regionSelectEl.disabled = true;
        } else if (this.disableAction=='nullify') {
            this.regionSelectEl.options.length = 1;
            this.regionSelectEl.value = '';
            this.regionSelectEl.selectedIndex = 0;
            this.lastCountryId = '';
        }
        this.setMarkDisplay(this.regionSelectEl, false);
    }

1 个答案:

答案 0 :(得分:0)

区域选择只能在购物车或结帐时触发。检查您的模板是否在skin/frontend/your_theme/js中使用自己的JS文件。我认为你的模板是为不同的Magento版本制作的,所以你的phtml文件中的CSS-Selectors不再适合JS了。因此,您要么使用匹配的JS文件,要么将您的产品模板与基本模板中的模板进行比较,并调整CSS类。