javascript - 仅在选择特定值时显示表单域
问题描述
如何使 form.gender 字段仅在通过从类别表中获取的下拉列表从 form.category 中选择“Lost Person”时显示...... ……
索引.html
<form method="post" enctype="multipart/form-data" id="personForm" data-cities-url="{% url
'ajax_load_areas_products' %}" novalidate >
{% csrf_token %}
<div class="row">
<div class="col-md-3">
{{ form.category | as_crispy_field }}
</div>
<div class="col-md-3">
{{form.product|as_crispy_field}}
</div>
</div>
<div class="row">
<div class="col-md-6" >
{{ form.title | as_crispy_field }}
</div>
<div class="col-md-6">
{{ form.gender | as_crispy_field }}
</div>
</div>
<div class="row">
<div class="col-md-6">
{{ form.description | as_crispy_field }}
</div>
<div class="col-md-6">
{{ form.photo | as_crispy_field }}
</div>
<div class="col-md-6">
</div>
</div>
<button class="btn btn-secondary btn-block mt-4" type="submit">Submit Post</button>
</form>
视图.py
def PostCreate(request):
if request.method == 'POST':
form = PostForm(request.POST, request.FILES)
if form.is_valid():
form.instance.user = request.user
form.save()
return redirect('dashboard')
else:
form = PostForm()
return render(request, 'chained/post_form.html', {'form' : form})
解决方案
将 attr 设置display:none
为您的表单。您需要编写一个 javascript 函数并在单击下拉列表中的元素时触发它。有两种方法可以实现这一点,您的下拉元素可以是直接触发 js 代码的按钮,也可以是其他元素,js 函数可以由它们的类或 id 触发。假设您决定使用按钮,您的按钮应如下所示:
<button onclick="display_form(1)"></b>
display_form
当您单击此功能时会触发功能,并且您还将值“1”传递给它,告诉它要做什么。功能:
function display_form(number){
if(number == 1){
"here you set the required form's display attr to block and hide all the others"
}
else if(number == 2)...
如果您根本没有掌握它,只需花几个小时学习 javascript,您就会很快掌握它。祝你好运!
推荐阅读
- java - 在java程序上获取python数组
- c++ - 如何使用名称调用结构实例的属性
- excel - Excel:当同一个工作表中有两个表格(垂直)时,将新行添加到表格底部
- python - 音乐测验项目
- .net - “域\用户”SQL Server 2008 R2 登录失败
- javascript - 使用 fetch 将 JavaScript 数组转换为 PHP,然后发送电子邮件
- javascript - 使用 Nuxt 从组件访问 Vuex 存储状态
- android - TypeError:无法读取未定义的属性“DETECTION_MODE”-“react-native-awesome-card-io”
- python - pygame:精灵类就像一个对象类
- java - 使用递归的多维度斜率