根据选择选项显示div
哦,帮助,我已经尝试了一百万种不同的方法,但它仍然不起作用:如果从选择/选项框中选择更新或最终,它应该显示其中包含输入字段的div。 它只执行switch语句中默认显示的内容。 当然,只有在做出选择后我才能确定它是否显示输入字段。
在头部…
$(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 Something Update Final Vegan
我可以更改交换机上的默认值,这似乎决定了它所显示的内容
// $("#needtoshow").change(function() { // switch ($(this).val())
如果要在下拉列表更改时显示div并隐藏,则需要绑定到change事件,例如:
$(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语句仅在首次加载页面时运行一次。
您可能希望在选择框上绑定事件侦听器。 ( 改变事件 )所以你会有以下几点:
$("#oldfilenum").change(function() { var optionValue = $(this).val(); switch (optionValue) { case 'update': $("#needfilenum").show(); break; case 'final ': $("#needfilenum").show(); break; default: $("#needfilenum").hide(); } };
尝试这样的事情:
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
或者其他什么。
当Victor评论另一个答案时, change
了MSIE中的blur
,所以你可能想要使用另一个事件,如果这是一个问题,也许是mouseup
。
您应该查看change()事件。 将其附加到然后执行逻辑。
您的检查function只运行一次,而不是每次更改选择字段。 您需要将一个onchange处理程序放入select字段: