Условно пропустить поля формы из представления, уменьшить беспорядок URL - PullRequest
2 голосов
/ 08 июля 2010

У меня есть несколько скрытых полей формы, в которых хранятся значения о текущем представлении (например, если определенные, обычно скрытые div-ы видны и т. Д.), Чтобы восстановить макет при отправке формы обратно.

Проблема в том, что я всегда отправляю все эти скрытые поля, , даже если они по умолчанию , создавая много ненужного беспорядка URL в процессе (например, http://www.example.com/view?ab=&ac=&ad= и т. Д. ).

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

Я пытался вручную удалить / вставить входные данные, но это кошмар. Есть ли лучший способ сделать это?

Ответы [ 3 ]

2 голосов
/ 08 июля 2010

Используя jQuery, вы можете просто remove() эти элементы формы перед передачей.Еще один способ, о котором я могу подумать, это удалить name attribute.

$('form').bind('submit', function(){
    $(this).children('input').each(function(){
        if(this.value === this.defaultValue)
           $(this).remove();
    });
});
1 голос
/ 08 июля 2010

Попробуйте отключить их-
«Отключенные элементы управления не могут быть успешными». - http://www.w3.org/TR/html401/interact/forms.html#h-17.13.2

0 голосов
/ 08 июля 2010

Если у вас нет причин хранить эти параметры в URL, почему бы не сохранить эти значения в файле cookie? На самом деле, это часто делается на многих сайтах. Если вы хотите быть более осторожным, параметры отображения можно сохранить в базе данных для каждого пользователя, но это ваш выбор.

...