Magento Theme добавляет продукт 2 раза в корзину в IE (Javascript) - PullRequest
1 голос
/ 26 января 2012

У меня установлена ​​magento с пользовательской темой, которая отлично работает в Safari, Firefox и Chrome. В IE explorer все тоже работает хорошо, просто, когда я добавляю товар в корзину, он добавляет его 2х вместо 1х.

Я ищу человека с достаточным опытом работы с JS, который мог бы помочь мне или решить эту проблему.

Чтобы посмотреть. sbx.mujjo.com, на главной странице наведите курсор на миниатюру продукта> нажмите [быстрый просмотр]> [добавить в корзину].

Спасибо!

<form action="http://sbx.mujjo.com/checkout/cart/add/uenc/aHR0cDovL3NieC5tdWpqby5jb20vY2F0YWxvZy9hamF4X3Byb2R1Y3Qvdmlldy9pZC8yNQ,,/product/25/" method="post" class="addcart-form" id="product_addtocart_form">
    <fieldset>
        <input type="hidden" name="product" value="25">
        <input type="hidden" name="related_product" id="related-products-field" value="">
        <div class="cell">
            <label for="qty">Quantity</label>
            <!--<input type="text" class="quantity-text" name="qty" id="qty" maxlength="12" value="1" title="Qty"  /> -->
            <input type="text" class="quantity-text" name="qty" id="qty" maxlength="12" value="1" title="Qty">
        </div>
        <button type="button btn-checkout" title="Add to Cart" class="button btn-cart" onclick="productAddToCartForm.submitLight(this)"><span><span>Add to Cart</span></span></button>
    </fieldset>
</form>

1 Ответ

2 голосов
/ 27 января 2012

Мне кажется, я знаю проблему, и это сводит меня с ума, когда люди делают это.Как вы можете видеть из кода, который я добавил к вопросу (после того, как он был рецензирован), он довольно прост.

У вас нормальная форма, с несколькими полями и кнопкой.Кнопка имеет событие onclick productAddToCartForm.submitLight(this), которое, как я полагаю, отправляет форму.То, что IE делает, запускает это событие javascript и затем реагирует на нажатие кнопки.Реакция состоит в том, чтобы отправить форму .... отсюда удвоение.

Это можно исправить одним из двух способов:

  1. изменить событие onclick на productAddToCartForm.submitLight(this); return false;, чтоговорит браузеру прекратить любую дополнительную обработку события click
  2. изменить кнопку на тег href - что-то вроде

    <a href="javascript:void();" onclick="productAddToCartForm.submitLight(this);"`
    

Редактировать: Забылиупомянуть одну вещь, это все еще должно работать в Safari, Chrome и FF

...