@WebforSelf

Как отфильтровать serialize данные c формы?

Есть скрипт который собирает данные с формы

// Аяксовая корзина (добавление варианта)
$(document).on("submit", "form.variants", function (e) {
  e.preventDefault();

  vars = $(this).serialize();		
    console.log(vars);
  $.ajax({
  url: "ajax/cart.php",
  data: vars,
  dataType:'json',
  success:function(data){ 
    $('#cart_informer').html(data.desktop);
    $('#cart_informer_main').html(data.main);
        $('#cart_informer_mini').html(data.mini);
    $('#cart_informer_mobile').html(data.mobile);
    $.fancybox.close();
        } 
      });  
});


<form>
<input id="product_preview183" name="variant" value="183" type="radio" class="sytle-input" checked="">

<input class="amounts incr__val" name="add_variant[107]" type="text" value="0">
<input class="amounts incr__val" name="add_variant[108]" type="text" value="2">

<button type="submit" value="">Добавить</button>
 <input name="mode" value="add" type="hidden">
</form>


variant=183&add_variant%5B107%5D=0&add_variant%5B108%5D=2

КАк можно передать так чтоб с нулевым значением serialize не собирало в итоге чтоб

variant=183&add_variant%5B108%5D=2 - было так и соответственно добавляя значение value он отправлял только те что >0

Думал решить проблему так

vars = $(this).serializeArray().filter(item => +item.value);


Но у меня еще передается скрытый инпут mode, как сделать так чтоб передавались только нужные input?
  • Вопрос задан
  • 59 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
$.param($(this).serializeArray().filter(n => +n.value && n.name !== 'mode'))
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы