У меня есть форма в моем приложении Django.Я пытаюсь создать форму, которая будет заполнена по частям.Я пытаюсь позволить пользователю перемещаться по форме, нажимая кнопки «Далее» и «Предыдущие», чтобы скрыть и показать различные шаги поля.Вот мой HTML:
{% load static %}
<!DOCTYPE html>
<html lang="en">
<head>
<!--Meta data and stylesheet linking-->
</head>
<body onload="loadFunction()">
<header>
<!--Header-->
</header>
<section id="form-section">
<div id="form-container">
<form class="form" method="post">
{% csrf_token %}
<div id="1">
<h2>Step 1 of 3</h2>
<div class="form-group">
<label for="info_field" class="sr-only">Info Field</label>
{{ form.info_field }}
</div>
<!--There are a few more fields like this -->
<div class="form-group">
<a onclick='stepChange(1, "next")' href="#">Next</a>
<a onclick='stepChange(1, "last")' href="#">Last</a>
</div>
</div>
<div id="2">
<h2>Step 2 of 3</h2>
<!--Several form fields-->
<div class="form-group">
<a onclick='stepChange(2, "prev")' href="#">Previous</a>
<a onclick='stepChange(2, "next")' href="#">Next</a>
</div>
</div>
<div id="3">
<h2>Step 3 of 3</h2>
<!--Several form fields-->
<button class="btn btn-lg btn-primary btn-block" type="submit">Submit</button>
<div class="form-group">
<a onclick='stepChange(3, "first")' href="#">First</a>
<a onclick='stepChange(3, "prev")' href="#">Previous</a>
</div>
</div>
</form>
</div>
</section>
<footer id="mainFooter">
<p>Footer Info.</p>
</footer>
<script>
function stepChange(var step, var cmd) {
if(cmd == "first") {
var x = document.getElementById("3");
var y = document.getElementById("1");
x.style.display = "none";
y.style.display = "block";
}
else if (cmd == "prev") {
var x = document.getElementById(step);
x.style.display = "none";
var y = step - 1;
x = document.getElementById(y);
x.style.display = "block";
}
else if (cmd == "next") {
var x = document.getElementById(step)
x.style.display = "none";
var y = step + 1;
x = document.getElementById(y);
x.style.display = "block";
}
else if (cmd == "last") {
var x = document.getElementById("1");
var y = document.getElementById("3");
x.style.display = "none";
y.style.display = "block";
}
}
function loadFunction() {
var x = document.getElementById("1");
var y = document.getElementById("2");
var z = document.getElementById("3");
x.style.display = "block";
y.style.display = "none";
z.style.display = "none";
}
</script>
</body>
</html>
Моя проблема в том, что при загрузке страницы все шаги отображаются одновременно.Когда я нажимаю на любой из тегов «a» (next, prev и т. Д.), Ничего не меняется, и я не понимаю, что я делаю неправильно.Я также попытался использовать метод "window.onload = function", и это дало тот же результат.Буду очень признателен за любую помощь, спасибо!