使用 javascript/ 显示和隐藏选择框
Showing and hiding select boxes using javascript/
我有一点测试代码,打算在选择某个选项时显示一个选择框,然后在该选项更改时隐藏。
.HTML:
<form>
<select id="sel1" name="sel1" class="chzn-select">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
<select id="sel2" name="sel2" selected="selected" style="display:none">
<option value="1">1</option>
<option value="2">2</option>
</select>
</form>
.JS:
var selCategory = $('#sel1');
$(selCategory).change(function () {
$('option:selected').each(function () {
if ($(this).text() ==='2') {
$('#sel2').show();
}
else if($(this).text() ==='1') {
$('#sel2').hide();
}
else if($(this).text() ==='3') {
$('#sel2').hide();
}
});
});
只有这样的话,这段代码效果很好:
if ($(this).text() ==='2') {
$('#sel2').show();
}
是 JavaScript,但在添加 else if 语句时会下降。另外,显示选择框本身或包含div 标签会更好吗?第二个选择框不是选择的唯一原因是选择似乎不喜欢已经隐藏的元素(宽度问题)。
任何帮助将不胜感激。
您的$('option:selected')
选择器正在查看所有select
元素的选项,而不仅仅是#sel1
。所以显示#sel2
(由于在#sel1
中选择了"2"),然后立即隐藏(由于在#sel2
本身选择了"1")。 确保只查看所需的值:
var selCategory = $('#sel1');
selCategory.change(function () {
selCategory.find('option:selected').each(function () {
if ($(this).text() =='2') {
$('#sel2').show();
}
else {
$('#sel2').hide();
}
});
});
我会让它更容易,抓住value
并从中连接sel
ID:
$("#sel1").change(function() {
$("select:not(#sel1)").hide(); //hide other selects, excluding #sel1
$("#sel" + this.value).show();
});
相关文章:
- 隐藏选择's optgroups及其内容(所选内容除外)
- 隐藏选择选项,并在单击定义的选项后显示它们
- 如何从窗体中隐藏选择值
- 如果选择了其他选择项目,则隐藏选择项目
- 显示/隐藏 选择 HTML5 JavaScript
- 如何向登录用户隐藏选择加入脚本
- 如何从另一个下拉列表中隐藏选择基于下拉列表的值
- 使用JavaScript隐藏选择选项
- 背景图像切换和隐藏选择复选框
- 当满足其他选择菜单值时取消隐藏选择菜单 - jQuery
- 展开按钮单击时选择列表并隐藏选择
- AngularJS - 隐藏<选择>元素,如果ng-option为空
- 使用 javascript/ 显示和隐藏选择框
- 如何隐藏选择(下拉列表)的选定文本
- 如何隐藏选择下拉选择
- 根据多个选择隐藏选择选项
- 隐藏“选择”下拉列表的元素
- 动态隐藏选择框中的选项(取决于第一个选择的值)
- 根据另一个选择的值隐藏选择选项
- 隐藏选择器始终决定元素可见,即使元素不可见