Задать вопрос
@AFI19

Почему не работает AJAX скрипт в firefox?

Добрый день! Подскажите, почему нможет не работать AJAX скрипт в firefox?
Скрипт отвечает за отправку данных формы(добавление товара в корзину), в Опере и Хроме все нормально. А в firefox форма перенаправляет на ссылку в action из за чего я получаю 404 и товар в корзину не попадает.
<form id="add-product" action="/cart">
          {if $product->sizes|count > '1'}
          <div class="product__size-list">
            {foreach $product->sizes as $v}
            <input id="size-n-{$v->size_id}" class="product__size-checkbox display--hidden" name="size" type="radio" value="{$v->size_id}">
            <label for="size-n-{$v->size_id}" class="product__size-item">
                {$v->scale}{if $v->growth}&nbsp;({$v->growth}){/if}
            </label>
            {/foreach}
          </div>
          {/if}
          <div style="display: none;">
            <input name="variant" value="{$product->variant->id}" type="radio" checked style="display: none;" />
          </div>
          <div class="product__quantity">
            <span class="btn-m btn-minus">
              <i class="fa fa-minus" aria-hidden="true"></i>
            </span>

            <input class="display--hidden" type="text" name="amount" value="1">

            <span class="quantity__count">1</span>
            <span class="btn-m btn-plus">
              <i class="fa fa-plus" aria-hidden="true"></i>
            </span>
          </div>
        </form>

$('.main-wrap').on('submit','form#add-product',function() {
    event.preventDefault();
    var a = null,
        e = null,
        t = $(this),
        n = t.find('button[type="submit"]'),
        r = t.find('input[name="variant"]:checked'),
        s = t.find('select[name="variant"]'),
        i = t.find('select[name="size"]'),
        u = t.find('input[name="size"]:checked'),
        l = t.find('input[name="amount"]');
    console.log(a = r.val());
    console.log(e = u.val());
    console.log(l.val());
    r.size() > 0 && (a = r.val()),
    l.size() > 0 && (amount = l.val()),
    s.size() > 0 && (a = s.val()),
    u.size() > 0 && u.val() > 0 && (e = u.val()),
    i.size() > 0 && (e = i.val()), 0 != e ? $.ajax({
        url: "ajax/cart.php",
        data: {
            variant: a,
            size: e,
            amount: amount
        },
        dataType: "json",
        success: function(a) {
            // $(".error-message").hasClass("size-error") && $(".error-message").removeClass("size-error"),
            console.log(a['c']);
            console.log(a['p']);
            $(".cart-btn").html(a['c']).addClass('cart--active');
            $('.popup__body').html(a['p']);
        }
    }) : $(".error-message").addClass("size-error")
});
  • Вопрос задан
  • 259 просмотров
Подписаться 1 Оценить 1 комментарий
Пригласить эксперта
Ответы на вопрос 1
crazy_str
@crazy_str
web-программист
Попробуй убрать action="/cart" )))
И почему не используешь формат передачи данных метода? POST or GET alya REQUEST?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы