【发布时间】:2019-12-22 18:08:08
【问题描述】:
我有一个包含下拉列表的表单。根据下拉菜单中的选择,应显示或隐藏多个字段。 我编写的 jquery 函数仅适用于一个字段。如果我在下拉列表中选择 no,则仅隐藏隐藏的标题,其余部分将保留。 我不太明白为什么。 我可以通过给每个字段 id 另一个名称(例如showing1、showing2、...)并在函数中引用这个 id 来解决这个问题,但这是很多重复。
难道不应该有更好的办法吗?
Link 摆弄。
感谢您的意见。
## jQuery
$(document).ready(function(){
$('#showing').hide();
$('#condition').change(
function(){
if(this.value == "yes"){
$('#showing').show();
}
else {
$('#showing').hide();
}
}
)
});
### Part of the form
<div class="col-4">
<div class="d-flex">
<div class="flex-fill p-2">
<select name="playing" class="form-control" id="condition" required>
<option value="yes">Yes</option>
<option value="no">No</option>
</select>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-2">
<div class="d-flex">
<div class="p-1">
<label class="p-2" for="what" id="showing" >What</label>
</div>
</div>
</div>
<div class="col-4">
<div class="d-flex">
<div class="flex-fill p-2">
<input id="showing"
type="text"
class="form-control input-text"
name="wat"
>
</div>
</div>
</div>
<div class="col-2">
<div class="d-flex">
<div class="p-1">
<label class="p-2" for="type" id="showing" >Type</label>
</div>
</div>
</div>
<div class="col-4">
<div class="d-flex">
【问题讨论】:
-
你应该使用class,而不是id。
-
从您的元素中删除 id
showing并将它们全部移动到具有 idshowing的容器 div 中。
标签: javascript jquery select dropdown show-hide