javascript - 如何根据用户选择隐藏表单字段?
问题描述
我想根据用户选择的品牌显示不同的视频游戏平台列表。
如果用户选择“任天堂”,我希望任天堂平台出现,如果他们选择微软,我希望微软平台出现。我已经尝试了搜索中出现的所有内容,但我无法得到任何工作。
我正在使用单选按钮进行品牌选择。
{% extends "base.html" %}
{% block title %} Add a new item {% endblock %}
{% block head %}
{{ super() }}
{% endblock %}
{% block body %}
<h2>New item!</h2>
<p>{{ error }}</p>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
<div class="container">
<form action="/do_insert_new_item" method="post" id="form_games">
<div class="form-group row">
<label class="col-4" for="branding_list[]">Branding</label>
<div class="col-8l">
<select id="TypeOfPlatform">
<div class="custom-control custom-radio custom-control-inline">
<input name="branding_list[]" id="branding_0" type="radio" class="custom-control-input" value="Nintendo"
required="required">
<label for="branding_0" class="custom-control-label">Nintendo</label>
</div>
<div class="custom-control custom-radio custom-control-inline">
<input name="branding_list[]" id="branding_1" type="radio" class="custom-control-input"
value="Microsoft" required="required">
<label for="branding_1" class="custom-control-label">Microsoft/XBOX</label>
</div>
</select>
</div>
</div>
<div class="form-group row" style="display:none;" id="platforms_nin">
<label class="col-4">Platform</label>
<div class="col-8" id="platforms">
<div class="custom-control custom-checkbox custom-control-inline">
<input name="platform_list[]" id="platform_0" type="checkbox" class="custom-control-input"
value="Nintendo switch" aria-describedby="platformHelpBlock">
<label for="platform_0" class="custom-control-label">Nintendo Switch</label>
</div>
<div class="custom-control custom-checkbox custom-control-inline">
<input name="platform_list[]" id="platform_1" type="checkbox" class="custom-control-input"
value="Gameboy" aria-describedby="platformHelpBlock">
<label for="platform_1" class="custom-control-label">Gameboy</label>
</div>
<div class="custom-control custom-checkbox custom-control-inline">
<input name="platform_list[]" id="platform_2" type="checkbox" class="custom-control-input"
value="Gameboy Color" aria-describedby="platformHelpBlock">
<label for="platform_2" class="custom-control-label">Gameboy Color</label>
</div>
<div class="custom-control custom-checkbox custom-control-inline">
<input name="platform_list[]" id="platform_3" type="checkbox" class="custom-control-input" value="GBA"
aria-describedby="platformHelpBlock">
<label for="platform_3" class="custom-control-label">GBA/GBA SP</label>
</div>
<div class="custom-control custom-checkbox custom-control-inline">
<input name="platform_list[]" id="platform_4" type="checkbox" class="custom-control-input" value="Wii"
aria-describedby="platformHelpBlock">
<label for="platform_4" class="custom-control-label">Nintendo Wii</label>
</div>
<div class="custom-control custom-checkbox custom-control-inline">
<input name="platform_list[]" id="platform_32" type="checkbox" class="custom-control-input" value="WiiU"
aria-describedby="platformHelpBlock">
<label for="platform_32" class="custom-control-label">Wii U</label>
</div>
<div class="custom-control custom-checkbox custom-control-inline">
<input name="platform_list[]" id="platform_5" type="checkbox" aria-describedby="platformHelpBlock"
class="custom-control-input" value="DS">
<label for="platform_5" class="custom-control-label">Nintendo DS Family</label>
</div>
<div class="custom-control custom-checkbox custom-control-inline">
<input name="platform_list[]" id="platform_6" type="checkbox" aria-describedby="platformHelpBlock"
class="custom-control-input" value="3DS">
<label for="platform_6" class="custom-control-label">Nintendo 3DS Family</label>
</div>
<div class="custom-control custom-checkbox custom-control-inline">
<input name="platform_list[]" id="platform_7" type="checkbox" aria-describedby="platformHelpBlock"
class="custom-control-input" value="Other Nintendo">
<label for="platform_7" class="custom-control-label">Other Nintendo</label>
</div>
<div class="custom-control custom-checkbox custom-control-inline">
<input name="platform_list[]" id="platform_8" type="checkbox" aria-describedby="platformHelpBlock"
class="custom-control-input" value="NES and SNES">
<label for="platform_8" class="custom-control-label">NES/SNES</label>
</div>
<div class="custom-control custom-checkbox custom-control-inline">
<input name="platform_list[]" id="platform_9" type="checkbox" aria-describedby="platformHelpBlock"
class="custom-control-input" value="N64">
<label for="platform_9" class="custom-control-label">N64</label>
</div>
<div class="custom-control custom-checkbox custom-control-inline">
<input name="platform_list[]" id="platform_10" type="checkbox" aria-describedby="platformHelpBlock"
class="custom-control-input" value="Gamecube">
<label for="platform_10" class="custom-control-label">GameCube</label>
<div class="custom-control custom-checkbox custom-control-inline">
<input name="platform_list[]" id="platform_33" type="checkbox" aria-describedby="platformHelpBlock"
class="custom-control-input" value="Virtual boy">
<label for="platform_33" class="custom-control-label">Virtual Boy</label>
</div>
<div class="custom-control custom-checkbox custom-control-inline">
<input name="platform_list[]" id="platform_34" type="checkbox" aria-describedby="platformHelpBlock"
class="custom-control-input" value="Game and Watch">
<label for="platform_34" class="custom-control-label">Game and Watch</label>
</div>
</div>
<span id="platformHelpBlock" class="form-text text-muted">Select all platforms that apply</span>
</div>
</div>
</div>
<div id="microsoftDiv" class="togglehid hidden">
<div class="form-group row">
<label class="col-4">Platform</label>
<div class="col-8" id="platforms">
<div class="custom-control custom-checkbox custom-control-inline">
<input name="platform_list[]" id="platform_11" type="checkbox" aria-describedby="platformHelpBlock"
class="custom-control-input" value="Xbox">
<label for="platform_11" class="custom-control-label">XBOX</label>
</div>
<div class="custom-control custom-checkbox custom-control-inline">
<input name="platform_list[]" id="platform_12" type="checkbox" aria-describedby="platformHelpBlock"
class="custom-control-input" value="Xbox360">
<label for="platform_12" class="custom-control-label">XBOX 360</label>
</div>
<div class="custom-control custom-checkbox custom-control-inline">
<input name="platform_list[]" id="platform_13" type="checkbox" aria-describedby="platformHelpBlock"
class="custom-control-input" value="Xbox one">
<label for="platform_13" class="custom-control-label">XBOX ONE</label>
</div>
<div class="custom-control custom-checkbox custom-control-inline">
<input name="platform_list[]" id="platform_14" type="checkbox" aria-describedby="platformHelpBlock"
class="custom-control-input" value="Other Microsoft">
<label for="platform_14" class="custom-control-label">Other Microsoft</label>
</div>
<span id="platformHelpBlock" class="form-text text-muted">Select all platforms that apply</span>
</div>
</div>
</div>
</form>
</div>
<script>
$(document).on('change','#TypeOfPlatform',function() {
if($("#TypeOfPlatform option:selected").text()=='Nintendo'){
$('#platforms_nin').show();
}else{
$('#platforms_nin').hide();
}
});
</script>
{% endblock %}
解决方案
我在想如果你从选择条件更改为它工作的无线电条件。我试过这个并为我工作。
$(document).on('click','[name=branding_list]',function() {
if($("[name=branding_list]:checked").val()=='Nintendo'){
$('#platforms_nin').show();
}else{
$('#platforms_nin').hide();
}
});
推荐阅读
- azure - 无法将通过 Azure 购买的自定义域与应用服务一起使用
- python - CX_Oracle 使用 Bind 变量/函数插入数据并返回记录 id
- html - 如何用原始内容填写rails表单?
- c# - 如何使用itextsharp c#在pdf中获取注释主题
- python - 如果两个元素相同,如何替换列表中的两个元素(Python)
- visual-studio-code - 将现有代码推送到新行时如何停止 VSCode 缩进?
- azure - 如何在 Azure Pipelines 中手动触发单个作业?
- asp.net-mvc - MVC 中的模型状态验证
- python - Kivy,提交按钮时调用下拉列表
- reactjs - 如何将中间的 Grid 项目从 3 个项目向下放置,将第一个和第三个项目放在顶部?