Как удалить / улучшить / изменить форму отправки данных, используя стандартное событие отправки и jquery, до фактической отправки?

0

Можно ли извлечь данные из формы, скажем:

<form action="/search/search" data-remote="true" data-type="json" id="search_form" method="get">

  <div class="input-group">
    <span class="input-group-addon">
      <input name="search[req][text][e]" type="hidden" value="false">
      <input id="search_req_text_e" name="search[req][text][e]" type="checkbox" value="true">
    </span>
    <input id="search_req_text_v" name="search[req][text][v]" type="text" value="">
  </div>

  <button id="fire_search" type="submit">Search</button>

</form>

Я думал о .submit() jQuery .submit(). Но как извлечь и изменить URL-адрес мероприятия?

$('#search_flickr_panel_body form').submit(function(e) {
    console.log(e)
}

Я не вижу в Chrome DevTools никакого URL-адреса в объекте печатного события

Я хотел бы удалить текстовые поля, которые не отмечены.

Может быть.attr('disabled', 'true') будет вариантом для удаления, но как изменить данные, не изменяя их в текстовом поле, только в submit url?

Обновить:

У меня более 100 таких полей ввода в форме, поэтому просто отправить их все, даже если проверено только одно, не так приятно (слишком много бесполезных данных, которые создают коммуникационные издержки)

Update2:

Я хочу не только удалять непроверенные данные из данных отправки, но также иметь возможность изменять эти данные перед отправкой (например, добавлять префикс к значениям, добавлять новые параметры), чтобы я мог обработать приведенный URL (с данные).

  • 0
    Чтобы уточнить: Вы хотите удалить search_req_text_v из опубликованных данных, если search_req_text_e не отмечен?
  • 0
    @DirkLachowski: да
Показать ещё 2 комментария
Теги:
forms
submit

1 ответ

0

Это приведет к отключению всех текстовых полей, у которых связанные флажки отключены...

$(function() {
    $('#search_form').submit(function(e) {
        e.preventDefault();

        $(".input-group").each(function() {
            $(this).find("input:text").prop("disabled", !$(this).find("input:checkbox")[0].checked);
        });

        this.submit();

        $(".input-group input:text").prop("disabled", false);
    }
});

Отключенные не должны подаваться вместе с остальной формой.

  • 0
    это решение для удаления данных. но как это изменить, не меняя форму? или я должен использовать пользовательский запрос ajax и обработать его так или есть другие варианты со стандартным событием отправки?
  • 0
    Форма будет перезагружена в связи с отправкой страницы, поэтому ваш сервер должен обрабатывать состояние элементов, а не клиента.
Показать ещё 14 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню