显示div取决于选择选项
问题描述:
哦,帮助,我已经尝试了一百万种不同的方式,但它仍然无法正常工作:如果您从选择/选项框中选择更新或最终,它应该显示具有输入的div在它的领域。它只执行switch语句中默认显示的内容。当然,只有在做出选择之后,我才能确定它是否显示输入字段。显示div取决于选择选项
头部分...
$(document).ready(function(){
$('#needfilenum').hide();
var optionValue = $("#needtoshow").val();
switch (optionValue)
{
case 'update':
$("#needfilenum").show();
break;
case 'final':
$("#needfilenum").show();
break;
default:
$("#needfilenum").hide();
break;
}
});
//});
'<select id="needtoshow" >
<option id="dfaut" value="0">Select Something</option>
<option id="update" value="update">Update</option>
<option id="final" value="final">Final</option>
<option id="allergy"value="allergy">Vegan</option>
</select>
<div id="needfilenum" style="background:#f00;">
<input type="text" name="wharever" />
</div>
我可以改变交换机的默认这似乎决定了它显示 还试图
// $("#needtoshow").change(function() {
// switch ($(this).val())
答
尝试是这样的:
var selectBox = $("#oldfilenum"), magicDiv = $("#needfilenum");
selectBox.bind("change", function() {
var val = this.value;
if (val === "update" || val === "final") {
magicDiv.show();
} else {
magicDiv.hide();
}
});
当然你也可以使用switch
代替,或具有可接受值的[]
做it.indexOf(val) > -1
或什么的。
维克多在另一个答案评论,change
大火在MSIE blur
,所以你可能需要使用另一个event如果这是一个问题,也许mouseup
。
答
您可能想要在选择框上绑定事件侦听器。 (change event) 所以,你会沿着线的东西:
$("#oldfilenum").change(function() {
var optionValue = $(this).val();
switch (optionValue) {
case 'update':
$("#needfilenum").show();
break;
case 'final ':
$("#needfilenum").show();
break;
default:
$("#needfilenum").hide();
}
};
答
如果你想有DIV显示,当下拉的变化,你需要绑定到更改事件,例如隐藏:
$(document).ready(function() {
$('#needfilenum').hide();
$('#needtoshow').bind('change', function() {
var optionValue = $("#needtoshow").val();
switch (optionValue)
{
case 'update':
case 'final':
$("#needfilenum").show();
break;
default:
$("#needfilenum").hide();
break;
}
});
});
在您的代码中,switch语句只在第一次加载页面时运行一次。
+0
谢谢。这工作很好......都在ie和ff – Leigh 2009-11-07 00:14:43
使用代码格式显示您的代码 – 2009-11-06 22:52:18
以及我以为我按照指示发布 我会转贴 – Leigh 2009-11-06 23:00:45
注意:你不能给ID为