Это был ответ, который я получил недавно, но тема утихла, и у меня есть еще несколько вопросов по этому поводу:
"Это довольно распространенный запрос. Вот один из способов
- Разбейте свою форму на страницах, используя
div
s с простыми в управлении id
s и только первый видимый
.
<form action=".." ..>
<!-- the first page has style set to be visible -->
<div id="formpage_1" style="visibility: visible; display: block; ..">
<label for="..">..</label>
<input type=".." ..>
..
<!-- NEXT button -->
<input type="button" value="next" onclick="pagechange(1,2);">
</div>
<!-- the 2nd and following pages have style set to be invisible -->
<div id="formpage_2" style="visibility: hidden; display: none; ..">
<label for="..">..</label>
<input type=".." ..>
..
<!-- PREVIOUS and NEXT buttons -->
<input type="button" value="back" onclick="pagechange(2,1);">
<input type="button" value="next" onclick="pagechange(2,3);">
</div>
...
<div id="formpage_10" style="visibility: hidden; display: none; ..">
<label for="..">..</label>
<input type=".." ..>
..
<!-- PREVIOUS and SUBMIT buttons -->
<input type="button" value="back" onclick="pagechange(10,9);">
<input type="submit" value="Submit">
</div>
- Используйте простую функцию 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;
}
Редактировать
Если вы хотите использовать макет таблицы, разбить for на несколько таблиц (по одной на каждую страницу) и дать id
s таблицам вместо div
s "
Теперь вышеприведенное работает, когда используется div, но когда я используюТаблицы это не работает должным образом.Кнопки «Назад» и «Вперед» показывают, скрыты они или нет, и всегда отображаются сверху.Любой способ предотвратить это, так как я не хочу изменять стиль всего, теперь, когда я использую div в отличие от таблиц.
Также, когда я нажимаю "Далее" и я нахожусь в нижней части формы, это будетвозьми меня к середине / нижней части следующего.Есть ли способ связать его с вершиной каждый раз, когда кто-то нажимает назад / вперед?