回发时禁用文本框

时间:2014-02-25 06:15:52

标签: c# javascript asp.net

我有一个带有项All, abc, etc的文本框和下拉列表。我希望javascript代码在选择all时禁用文本框,并在选择其他任何内容时启用它。 我使用该代码进行了解决,但问题是如果发布了表单,即使选择了abc或其他任何内容,文本框也会被禁用。

<script type="text/javascript">
    function changeddl() {
        document.getElementById("txtsearch").disabled = document.getElementById("ddlcolumn").value == "All";
    }
</script>

ASPX

<asp:DropDownList ID="ddlcolumn" runat="server" CssClass="ddl" Width="120px" AppendDataBoundItems="true" ClientIDMode="Static" ValidationGroup="Search" onchange="changeddl();" >
    <asp:ListItem>All</asp:ListItem>
    <asp:ListItem>abc</asp:ListItem>
    </asp:DropDownList>

     <asp:TextBox ID="txtsearch" runat="server" CssClass="txt" Width="200px"
     ValidationGroup="Search" ClientIDMode="Static" SkinID="txt"></asp:TextBox>

3 个答案:

答案 0 :(得分:1)

尝试拨打changeddl()

上的body onload功能
<body onload="changeddl()">

答案 1 :(得分:0)

基于this answer,

var e = document.getElementById("ddlViewBy");
var strUser = e.options[e.selectedIndex].text;


if(e === "All"){
     document.getElementById("txtsearch").style.display = "none"; // However you want to 'disable'
 }

答案 2 :(得分:0)

在页面回发时,请编写以下代码:

protected void Page_Load(object sender, EventArgs e)
{
     if(ddlcolumn.SelectedValue == "All")
     {
          txtsearch.Attributes.Add("disabled","disabled");
     }
     else
     {
          txtsearch.Attributes.Remove("disabled");
     }
}