【问题标题】:Textbox disables on postback回发时禁用文本框
【发布时间】:2014-02-25 14:23:51
【问题描述】:

我有一个包含 All, abc, etc 项目的文本框和下拉菜单。我想要javascript代码在选择所有内容时禁用文本框并在选择其他任何内容时启用它。
我用该代码解决了这个问题,但问题是如果发布表单,即使选择了 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>

【问题讨论】:

    标签: c# javascript asp.net


    【解决方案1】:

    尝试在body onload 上调用changeddl() 函数

    <body onload="changeddl()">
    

    【讨论】:

      【解决方案2】:

      基于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'
       }
      

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-12-16
          • 1970-01-01
          • 2011-03-01
          • 2017-10-11
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多