I need to show a form using a button, and hide it when the user presses another button, because the other button shows another form. I did a similar thing with a select box, but I can't figure out how to do this.
This question is related to
javascript
html
Would you want the same form with different parts, showing each part accordingly with a button?
Here an example with three steps, that is, three form parts, but it is expandable to any number of form parts. The HTML characters «
and »
just print respectively « and » which might be interesting for the previous and next button characters.
shows_form_part(1)_x000D_
_x000D_
/* this function shows form part [n] and hides the remaining form parts */_x000D_
function shows_form_part(n){_x000D_
var i = 1, p = document.getElementById("form_part"+1);_x000D_
while (p !== null){_x000D_
if (i === n){_x000D_
p.style.display = "";_x000D_
}_x000D_
else{_x000D_
p.style.display = "none";_x000D_
}_x000D_
i++;_x000D_
p = document.getElementById("form_part"+i);_x000D_
}_x000D_
}_x000D_
_x000D_
/* this is called at the last step using info filled during the previous steps*/_x000D_
function calc_sum() {_x000D_
var sum =_x000D_
parseInt(document.getElementById("num1").value) +_x000D_
parseInt(document.getElementById("num2").value) +_x000D_
parseInt(document.getElementById("num3").value);_x000D_
_x000D_
alert("The sum is: " + sum);_x000D_
}
_x000D_
<div id="form_part1">_x000D_
Part 1<br>_x000D_
<input type="number" value="1" id="num1"><br>_x000D_
<button type="button" onclick="shows_form_part(2)">»</button>_x000D_
</div>_x000D_
_x000D_
<div id="form_part2">_x000D_
Part 2<br>_x000D_
<input type="number" value="2" id="num2"><br>_x000D_
<button type="button" onclick="shows_form_part(1)">«</button>_x000D_
<button type="button" onclick="shows_form_part(3)">»</button>_x000D_
</div>_x000D_
_x000D_
<div id="form_part3">_x000D_
Part 3<br>_x000D_
<input type="number" value="3" id="num3"><br>_x000D_
<button type="button" onclick="shows_form_part(2)">«</button>_x000D_
<button type="button" onclick="calc_sum()">Sum</button>_x000D_
</div>
_x000D_
If you have a container and two sub containers, you can do like this
jQuery
$("#previousbutton").click(function() {
$("#form_sub_container1").show();
$("#form_sub_container2").hide(); })
$("#nextbutton").click(function() {
$("#form_container").find(":hidden").show().next();
$("#form_sub_container1").hide();
})
HTML
<div id="form_container">
<div id="form_sub_container1" style="display: block;">
</div>
<div id="form_sub_container2" style="display: none;">
</div>
</div>
There's something I bet you already heard about this! It's called jQuery.
$("#button1").click(function() {
$("#form1").show();
};
It's really easy and you can use CSS-like selectors and you can add animations. It's really easy to learn.
There's the global attribute called hidden
. But I'm green to all this and maybe there was a reason it wasn't mentioned yet?
var someCondition = true;_x000D_
_x000D_
if (someCondition == true){_x000D_
document.getElementById('hidden div').hidden = false;_x000D_
}
_x000D_
<div id="hidden div" hidden>_x000D_
stuff hidden by default_x000D_
</div>
_x000D_
https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/hidden
Source: Stackoverflow.com