Javascript 根据下拉菜单中的选定值启用/禁用表单中元素的最佳方法?

Javascript 根据下拉菜单中的选定值启用/禁用表单中元素的最佳方法?,javascript,jquery,html,twitter-bootstrap,twitter-bootstrap-3,Javascript,Jquery,Html,Twitter Bootstrap,Twitter Bootstrap 3,我有一个带有访问级别字段的表单。根据所选值,表单上将启用更多字段。以下是我的表格示例: $'frm_accesslevel'。在'change',accesslevel; 函数访问级别{ var fldVal=$this.val; 开关FLDVAL{ 案例“1”: 打破 案例“2”: 打破 案例“3”: 打破 案例“4”: 打破 违约: } } 您应该尝试以下方法: $('#frm_accesslevel').on('change', function(){ var fldVal = $(t

我有一个带有访问级别字段的表单。根据所选值,表单上将启用更多字段。以下是我的表格示例:

$'frm_accesslevel'。在'change',accesslevel; 函数访问级别{ var fldVal=$this.val; 开关FLDVAL{ 案例“1”: 打破 案例“2”: 打破 案例“3”: 打破 案例“4”: 打破 违约: } }
您应该尝试以下方法:

$('#frm_accesslevel').on('change', function(){

var fldVal = $(this).val(); // you have access to this here, not outside

 switch(+fldVal) {//cast as number with +
    case 1:
        alert("nothing happen");
        break;
    case 2:
        $(".form-control").hide();//hide all
        $("#frm_region").show();
        $("#frm_accesslevel").show();
        break;
    case 3:
        alert("behavior");
        $(".form-control").show();//show all
        break;
    case 4:
        alert("other behavior");
        $(".form-control").show();//show all
        break;
    default:
        alert("somethig wrong");
} 

});
请记住,html中有错误,有些错误丢失,id的属性中有空格

这是一个简单而实用的例子

这个怎么样? 如果有3个以上的SELECT,那么可以使用selects名称遍历数组,以避免重复.hasClass部分

$frm_accesslevel.changefunction{ var selected=$frm\U访问级别选项:已选择; $'.enabler'.eachfunction{ $this.propdisabled,true; }; 如果已选择。hasClass'region'{ $'frm_region'.propdisabled,false; } 如果已选择。hasClass'state'{ $'frm_state'.propdisabled,false; } 如果选中,则为“城市”类{ $'frm_city'.propdisabled,false; } }; 访问级别: -选择级别- 1级 二级 三级 四级 区域 声明: 城市: 提交
即使这样做有效,我认为他正在寻找最好的方法。正如标题所说。我的呢?@NiMusco我认为OP方法不错。当然,您的方法更具可扩展性。否则,如果我们有数百个选择,我们也需要另一种方法。