• Как передать параметры из формы в URL?

    @bkosun
    Вариант с удалением элемента с формы, если выбрана пустая опция:

    <script src="https://code.jquery.com/jquery-2.1.3.js"></script>
    <script type="text/javascript">
    <!--
        $(function(){
            $("#sendForm").click(function(){ // При клике по кнопке #sendForm
                if ($("#msprice").val() == '') // Если в элементе #msprice выбрана опция с пустым значением
                    $("#msprice").remove() // Удаляем #msprice с формы
            });
          }); 
    -->
    </script>

    <form role="form" action="catalog/vse-tovaryi/">
      <select name="ms|price" id="msprice">
          <option value="">Любая</option>
          <option value="500">500 рублей</option>
      </select>
            <select name="msoption|tags">
          <option value="1">Тэг 1</option>
          <option value="2">Тэг 2</option>
      </select>
    
      <button type="submit" id="sendForm">Подобрать</button>
    </form>


    А вообще, если отображаемая ссылка в браузере не имеет значения, правильно было бы просто игнорировать этот аргумент скриптом обработчиком, как уже написали выше.
    Ответ написан
    1 комментарий
  • Как передать параметры из формы в URL?

    Вот ловите накатал примерчик:
    HTML:
    <form role="form" id="form" action="catalog/vse-tovaryi/" data-def="catalog/vse-tovaryi/">
      <select name="ms|price">
          <option value="">Любая</option>
          <option value="500">500 рублей</option>
      </select>
            <select name="msoption|tags">
          <option value="1">Тэг 1</option>
          <option value="2">Тэг 2</option>
      </select>
    
      <button type="submit">Подобрать</button>
    </form>

    JS:
    window.onload = function () {
    	var form = $('#form'), def = form.data('def'), data = {}, action;
      
      $(document).on('change', '#form select', function () {
      	var el = $(this), val = el.val(), name = el.attr('name');
        if (val) {
        	data[name] = val;
        } else {
          delete data[name];
        }
        action = def + "?";
        for(var i in data) {
          action += i + "=" + data[i] + '&';
        }
        action = action.substr(0, action.length - 1);
        form.attr('action', action);
      });
    };

    Смысл заключается в генерации нужного вам url и подстановки его в аттрибут action вашей формы в связи с чем после нажатия на кнопку отправить, вы перейдете туда куда нужно.
    Ответ написан
    4 комментария
  • Как передать параметры из формы в URL?

    @entermix
    Можно удалить этот select при клике по кнопке отправки формы JS скриптом
    Ответ написан
    Комментировать