[英]Show input field of a form according to the value of dropdown
我有一个包含下拉列表和其他2个输入字段的表单,最初我只想显示下拉列表并隐藏其他两个字段,并且当dropdown的值是other时显示其他两个字段。
<form id="submit_form" name="myform" action="/download" method="post"> {% csrf_token %}
<fieldset>
<select name="one" onchange="if (this.value=='other'){this.form['datefrom'].style.visibility='visible'}else {this.form['datefrom'].style.visibility='hidden'};">
<option value="none" selected="selected">Select...</option>
<option value = "1m" >1 month</option>
<option value = "2m">2 months</option>
<option value = "3m">3 months</option>
<option value = "other">other</option>
</select>
<br> From:
<br>
<input type="datetime-local" name="datefrom"><br> To:
<br>
<input type="datetime-local" name="dateto"><br><br>
<input type="submit" value="Submit">
</fieldset>
</form>
在我的代码中最初显示了所有输入字段,所以如果有人可以隐藏我,那么两个datetime输入字段将首先显示并且仅在dropdown的值是其他值时才显示它们。
您可以使用javascript。 首先,将输入字段设置为在div内隐藏的谁扭曲。 根据选择的选项值将onchange
用于动态条件。
检查此示例。
function func(value) { if (value == 'other') { $('#input_field').show(); } else { $('#input_field').hide(); } }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <form id="submit_form" name="myform" action="/download" method="post"> {% csrf_token %} <fieldset> <select name="one" onchange="func(this.value)"> <option value="none" selected="selected">Select...</option> <option value="1m">1 month</option> <option value="2m">2 months</option> <option value="3m">3 months</option> <option value="other">other</option> </select> <div id="input_field" style="display:none;"> <br> From: <br> <input type="datetime-local" name="datefrom"><br> To: <br> <input type="datetime-local" name="dateto"><br><br> </div> <input type="submit" value="Submit"> </fieldset> </form>
Javascript解决方案
<!DOCTYPE html>
<html>
<head>
<style>
.cs-hide{
display:none;
}
</style>
</head>
<body>
<p>Select a new car from the list.</p>
<select id="mySelect" onchange="myFunction()">
<option value = "1m" >1 month</option>
<option value = "2m">2 months</option>
<option value = "3m">3 months</option>
<option value = "other">other</option>
</select>
<br>
<div id="dateContainer" class="cs-hide">
From:<br>
<input type="datetime-local" name="datefrom"><br>
To:<br>
<input type="datetime-local" name="dateto"><br><br>
</div>
<input type="submit" value="Submit">
<script>
function myFunction() {
var x = document.getElementById("mySelect").value;
var element = document.getElementById("dateContainer");
if(x === "other"){
element.classList.remove("cs-hide");
}else{
element.classList.add("cs-hide");
}
}
</script>
</body>
</html>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.