我可以在不使用javascript中禁用的情况下禁用下拉列表吗?

时间:2010-07-15 18:18:58

标签: c# javascript asp.net-mvc

我有一个下拉列表,根据复选框点击启用/禁用。在我的调试中,当我的控制器中的复选框被禁用时,我的对象引用未设置。

CONTROLLER

Subject = Request.Form["DetailSelect" + rowID].ToString();

JAVASCRIPT

ddlSelect.disabled = !ddlSelect.disabled;

ASPX

<select = id="detailSelect<%=item.rowID"%> name="DetailSelect<%=item.rowID%>">
     <option value="">--Choose One--</option>
     <option value="Math">Math</option>
     <option value="English">English</option>
     <option value="History">History</option>
</select>

如何在不使用javascript中的禁用切换功能的情况下禁用下拉列表?

3 个答案:

答案 0 :(得分:1)

如果您不使用disabled属性,则可以使用以下属性执行此操作:

<select ... disabled="disabled"></select>

答案 1 :(得分:1)

你可以通过jquery

来做到这一点
 $("input[id$='chkbox']").click(function() {  
            $("select[id$='ddl']").attr("disabled", !$(this).is(":checked"));  
       }); }); 

其中checkbox是复选框的Id,ddl是下拉列表的ID

答案 2 :(得分:0)

我做了一个小的解决方法,我使用了一个隐藏的对象,然后在javascript函数中禁用我的下拉菜单之前,我将值分配给我的隐藏输入。

ASPX

<input id="hiddenSelect" type="hidden" name="HiddenSelect" value="" />

JAVASCRIPT

var ddlSelect = document.getElementById('detailSelect' + rowID).value;
document.getElementById('hiddenSelect').value = ddlSelect;
ddlSelect.disable = !ddlSelect.disabled;