好吧所以我试图基于下拉菜单的selectedIndex删除一个类,具体来说,当有人选择我的下拉菜单中的第二个选项(selectedIndex为1)时,我希望显示带有id = hide的div,并且如果他们选择不同的选项,他们会再次消失。
这是我的HTML代码:
<div id="product-variants">
<select id="product-select" name="id">
<option value="269270508">No Charm</option>
<option value="269270608">Heart (Add $25)</option>
<option value="269270614">Horseshoe Bead (Add $25)</option>
<option value="269270666">Crystal Horseshoe (Add $25)</option>
<option value="269270692">Cowgirl Cross (Add $25)</option>
<option value="269270732">Lucky Charm (Add $35)</option>
<option value="270460652">Round (Add $25)</option>
<option value="269270562">Small Star (Add $20)</option>
<option value="269270598">Large Star (Add $25)</option>
</select>
</div>
<div id="hide" class="hidden"><form>
<input id="checkbox" type="checkbox" name="vehicle" value="Bike">Engraving?<br>
</form>
<form>
Engraving Message: <input type="text" name="engraving"><br>
</form></div>
我的剧本:
var choice = getElementById("product-select").selectedIndex;
if (choice == 1){
$('#checkbox').change(function(){
$('#hide').removeClass('hidden');
});
}
和CSS:
.hidden {
display:none
}
jfiddle上的链接:http://jsfiddle.net/AFrjz/2/
我一直在努力解决这个问题几个小时,似乎无法做到这一点。
非常感谢!
答案 0 :(得分:2)
您可以使用jQuery方式执行所有操作:http://jsfiddle.net/AFrjz/6/
$('#product-select').change(function () {
var choice = $("#product-select option:selected").index();
if (choice == 1) {
$('#hide').removeClass('hidden');
} else {
$('#hide').addClass('hidden');
}
});
您必须在更改<select>
时获取所选索引,然后在if
中进行比较。
无需在checkbox
上调用更改功能来隐藏或显示自己。
答案 1 :(得分:0)
您需要进行以下更正。
getElementById
更改为
document.getElementById
<强> Live Demo 强>
$('#checkbox').change(function(){
var choice = document.getElementById("product-select").selectedIndex;
alert(choice)
if (choice == 1){
$('#hide').removeClass('hidden');
}
});
要查看removeClass
的效果,请在选择中选择第二项,然后选中复选框。
答案 2 :(得分:0)
试试这个
if (choice == 1){
//$('#checkbox').change(function(){ you are callinjg a change event here... so the hide is not fired..
$('#hide').removeClass('hidden');
// });
}
<强>已更新强>
当有人在我的下拉菜单中选择第二个选项(selectedIndex为1)时,我希望显示带有id = hide的div,如果他们选择了不同的选项,则会再次消失。
我使用了selectbox的更改事件..并检查了所选的值..如果value是你的第二个选项的值..然后删除class else addclass
$("#product-select").change(function(){
var choice = $(this).val()
if (choice == '269270608'){
//$('#checkbox').change(function(){
$('#hide').removeClass('hidden'); //remove class here
//});
}else{
$('#hide').removeClass().addClass('hidden'); //else addclass
}
});