-1

「カートに追加」をクリックすると、デフォルトの form.js ファイルでエラーが発生しているように見えます。これにより、数量フィールドの値が正しく渡されなくなります。代わりに、Magento がデフォルト値に置き換えられます。このスクリプトはエラーを発生せず、数量フィールドは他のブラウザーでも問題なく機能します。

さらに、デフォルトのテーマに戻すと、カートに追加ボタンが正しく機能します。どこから始めるべきかについてのアイデア。ここで IE8 フレンドリーではないことは何かありますか? カートへの追加機能も form.js ファイルも変更していません。

更新:私は browserstack アカウントを持っています。デバッグすると、VarienForm が定義されておらず、「'productAddToCartForm' が null またはオブジェクトではありません」という 2 つのエラーがスローされることが示されます。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);
    }
4

1 に答える 1