Как я могу исключить значения переключателей HTML-формы из отправленных? - PullRequest
6 голосов
/ 08 ноября 2010

Мне нужно отправить только одно значение поля ввода в скрипт cgi через веб-форму.

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

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

Как я могу предотвратить отправку значений переключателей?

Ответы [ 3 ]

12 голосов
/ 08 ноября 2010

Вы можете добавить к ним атрибут disabled в обработчике submit, это предотвратит их сериализацию либо с помощью jQuery, либо с помощью обычной отправки <form>. Например:

$("#myForm").submit(function() {
  $(this).find(":radio, :checkbox").attr("disabled", true);
});

Или вы можете .serialize() только те элементы, которые вам нужны, например:

$.post("myPage.cgi", $("#myForm input[type=text]").serialize());
6 голосов
/ 08 ноября 2010

Сделать их "неудачными".Для этого есть несколько способов: http://www.w3.org/TR/html401/interact/forms.html#h-17.13.2

0 голосов
/ 14 января 2014

Также возможно иметь две разные формы: одну с видимыми элементами формы и другую со скрытым input, которая представляет конечный результат для отправки.Вы можете либо прикрепить обработчики onchange к видимым элементам формы, чтобы они вызывали некоторый JavaScript, чтобы обновить невидимое поле, либо запустить функцию как часть обработчика onsubmit, чтобы установить невидимое значение непосредственно перед его отправкой.

Вот jsFiddle, демонстрирующий второй подход (обработчик onsubmit): http://jsfiddle.net/gtU4J/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...