Intereting Posts
Как выровнять кнопку до середины экрана? Как генерировать неупорядоченный список динамически в asp.net? Автопрокрутка загрузочного модального модального (‘show’) Полностью потеряно, как сохранить содержимое всплывающего windows расширения jQuery при изменении размера windows Как прикреплять нижний колонтитул к нижней (не фиксированной) даже при прокрутке CSS: Как изменить интервал между переключателем и его текстом? использование @ font-face в Microsoft Edge Несколько продуктов Schema.org и как это будет выглядеть в результатах поисковой системы? document.getElementById () путем назначения динамической переменной Изменение имени переключателя javascript, не работающего в IE бесконечное флип-изображение с использованием css3 3d Как сделать: активная работа в IE? Почему дубликат ID – ошибка в проверке HTML5? Как запретить пользователю вводить десятичные знаки?

Как скрыть / показать разделы HTML-формы

У меня есть HTML-форма, которая при отправке отправляет электронное письмо со всеми вопросами и ответами с использованием PHP.

Мне нужно сломать форму, поскольку она слишком длинная. Мне нужна только одна кнопка отправки и для загрузки формы только один раз. Это, очевидно, означает, что мне нужно использовать JavaScript show / hides.

Я пробовал использовать много разных типов, но я не могу заставить их работать правильно с моей формой. Он довольно большой и кажется очень сложным, чтобы работать с show / hide 🙁

Я использовал show / hide div, но не таблицы.

У кого-нибудь есть что-то, что может помочь?

Что бы я хотел,

  • Следующая кнопка, которая приведет вас к другому разделу формы.
  • В следующем разделе вы можете вернуться в предыдущий раздел или снова перейти к другому разделу.
  • Последний раздел должен содержать предыдущий или отправить.

Заранее спасибо.

Это довольно распространенный запрос. Вот один из способов

  • Разбивайте свою форму на страницах с помощью div s с простым управлением id s и только первый вид

,

 
..
...
  • Используйте простую функцию JS для переключения между страницами

,

 function pagechange(frompage, topage) { var page=document.getElementById('formpage_'+frompage); if (!page) return false; page.style.visibility='hidden'; page.style.display='none'; page=document.getElementById('formpage_'+topage); if (!page) return false; page.style.display='block'; page.style.visibility='visible'; return true; } 

редактировать

Если вы хотите использовать табличный макет, разделите его на несколько таблиц (по одному на каждую страницу) и присвойте id s таблицам вместо div

Если вы просто хотите организовать форму в представлении, как насчет чего-то вроде виджета аккордеона? Взгляните на http://docs.jquery.com/UI/Accordion

Ну, если вы с удовольствием используете только CSS (и помните о проблемах с кросс-браузером, которые могут возникнуть), один из подходов заключается в использовании псевдо-classа :target .

Разделите форму на связанные группы входов, используя в этом случае тег fieldset . Дайте каждому элементу field атрибут id и fieldset эти fieldset с помощью тегов.

HTML:

 
Page One
Page One
Page Two
Page Two

CSS:

 fieldset { height: 0; display: none; overflow: hidden; -o-transition: all 2s linear; -webkit-transition: all 2s linear; -ms-transition: all 2s linear; -moz-transition: all 2s linear; transition: all 2s linear; } fieldset:target { display: block; height: 5em; -o-transition: all 2s linear; -webkit-transition: all 2s linear; -ms-transition: all 2s linear; -moz-transition: all 2s linear; transition: all 2s linear; } 

Демо-версия JS Fiddle .

Рекомендации:

  • :target псевдоclass .