jQuery绑定三个选择菜单隐藏/显示
jQuery bind three select menus hide/show
我有三个选择菜单。
<form>
<select id="mass" name="mass">
<option value="Blank" selected>--</option>
<option value="Light">Light</option>
<option value="Medium">Medium</option>
<option value="Heavy">Heavy</option>
</select>
<select id="colour" name="colour">
<option value="Blank" selected>--</option>
<option value="Red">Red</option>
<option value="Green">Green</option>
<option value="Blue">Blue</option>
</select>
<select id="textureColour" name="textureColour">
<option value="Blank" selected>--</option>
<option value="Orange">Orange</option>
<option value="Purple">Purple</option>
<option value="Black">Black</option>
</select>
</form>
我希望显示第一个菜单,隐藏第二个和第三个菜单,直到调用。
如果第一个菜单从默认选项更改,我希望显示第二个菜单。
在第二个菜单中做出选择后,我希望显示第三个菜单。
但是,如果第一个菜单中的选定值为"中"或"重",我只希望显示第三个菜单。选择默认的"空白"或"浅色"应该隐藏第三个菜单。
目前它没有按照我想要的方式运行。
$(function() {
var mass = $('#mass');
var colour = $('#colour');
var textureColour = $('#textureColour');
mass.change(function() {
if (mass.val() != 'Blank') {
$(colour).show();
} else {
$(colour).hide();
}
if (mass.val() === 'Light') {
$(textureColour).show();
} else {
$(textureColour).hide();
}
}).trigger('change');
colour.change(function() {
if ((mass.val() === 'Medium') || (mass.val() === 'Heavy')) {
$(textureColour).show();
} else {
$(textureColour).hide();
}
}).trigger('change');
});
JSFiddle
所以,我想你想要这样的东西
$(function() {
var mass = $('#mass');
var colour = $('#colour');
var textureColour = $('#textureColour');
mass.change(function() {
if (mass.val() != 'Blank') {
$(colour).show();
$(colour).change();
} else {
$(colour).val('Blank');
$(textureColour).val('Blank');
$(colour).hide();
$(textureColour).hide();
}
});
colour.change(function() {
if ((mass.val() === 'Medium') || (mass.val() === 'Heavy') && colour.val() !== 'Blank') {
$(textureColour).show();
} else {
$(textureColour).hide();
}
});
});
#colour {
display: none;
}
#textureColour {
display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form>
<select id="mass" name="mass">
<option value="Blank" selected>--</option>
<option value="Light">Light</option>
<option value="Medium">Medium</option>
<option value="Heavy">Heavy</option>
</select>
<select id="colour" name="colour">
<option value="Blank" selected>--</option>
<option value="Red">Red</option>
<option value="Green">Green</option>
<option value="Blue">Blue</option>
</select>
<select id="textureColour" name="textureColour">
<option value="Blank" selected>--</option>
<option value="Orange">Orange</option>
<option value="Purple">Purple</option>
<option value="Black">Black</option>
</select>
</form>
希望对:)有所帮助
也许你只是忘记写$(colour).hide();
和$(textureColour).hide();
而不是$(colour).hide;
和$(textureColour).hide;
。
编辑
我不得不更改完整的代码。我认为这就是你要找的。
$(function() {
var mass = $('#mass');
var colour = $('#colour');
var textureColour = $('#textureColour');
mass.change(function() {
if(mass.val() == 'Blank'){
colour.hide();
textureColour.hide();
}else{
colour.show();
if(colour.val() != 'Blank') textureColour.show();
}
if(mass.val() == 'Light') textureColour.hide();
}).trigger('change');
colour.change(function() {
if(colour.val() == 'Blank') return textureColour.hide();
if('Medium,Heavy'.split(',').indexOf(mass.val()) != -1){
textureColour.show();
}
}).trigger('change');
});
我更新了javascript,现在它也按照我想要的方式运行:
$(function() {
var mass = $('#mass');
var colour = $('#colour');
var textureColour = $('#textureColour');
mass.change(function() {
if (mass.val() != 'Blank') {
$(colour).show();
$(colour).change();
} else {
$(colour).val('Blank');
$(textureColour).val('Blank');
$(colour).hide();
$(textureColour).hide();
}
});
colour.change(function() {
if (((mass.val() === 'Medium') && colour.val() !== 'Blank') || ((mass.val() === 'Heavy') && colour.val() !== 'Blank')) {
$(textureColour).show();
} else {
$(textureColour).hide();
}
});
});
JSFiddle
相关文章:
- 基于其他下拉菜单选择隐藏/显示下拉菜单
- 使用vue路由器,我如何才能使菜单选择的样式
- Asp.net 引导下拉菜单 - 选择一个项目
- 检测引导下拉菜单选择的正确方法是什么
- 当上一个下拉菜单选择了某些内容时,javascript显示下拉菜单
- 转换UL->li inot为同位素过滤菜单选择的列表
- Jquery:在下拉菜单选择上调用函数
- Javascript菜单选择
- 如何根据下拉菜单选择隐藏/显示文本框
- 使用.on的多个下拉菜单选择文本仅适用于第一个下拉菜单
- 如何基于两个下拉菜单选择进行页面重定向
- WordPress 类别下拉菜单选择链接断开
- Jquery - 根据下拉菜单选择加载 XML 文件
- 使用下拉菜单选择不同的语言并翻译 RoR 3.2 Ruby 2.0
- 将下拉菜单选择保存在 Cookie 中
- JavaScript 披萨菜单选择列表
- 如何生成下拉菜单选择以根据数据库中可用的行/记录表单数据填充表单
- 尝试在鼠标悬停时为Wordpress中的下拉菜单选择添加突出显示
- 使后台生成的下拉菜单选择成为强制性的
- 求和2个跨度元素中的两个值(用户可以通过下拉菜单选择每个跨度元素的值)