Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何禁用按钮,然后在textbox.textchanged事件后启用它?_C#_Asp.net - Fatal编程技术网

C# 如何禁用按钮,然后在textbox.textchanged事件后启用它?

C# 如何禁用按钮,然后在textbox.textchanged事件后启用它?,c#,asp.net,C#,Asp.net,我有一个用户控件,用作更新学生记录的表单。此用户控件用于名为students update的页面。更新成功后,我想禁用更新按钮。之后,如果用户更改了任何文本,则应重新启用更新按钮。我正在尝试,但它不起作用。我的所有文本框autopost属性都为true。我可以禁用,但如果用户开始在文本框中输入新文本,我将无法再次启用。我正在使用textbox.textchanged事件来实现这一点 Jquery方法: <body> <form id="form1" runat="ser

我有一个用户控件,用作更新学生记录的表单。此用户控件用于名为students update的页面。更新成功后,我想禁用更新按钮。之后,如果用户更改了任何文本,则应重新启用更新按钮。我正在尝试,但它不起作用。我的所有文本框autopost属性都为true。我可以禁用,但如果用户开始在文本框中输入新文本,我将无法再次启用。我正在使用textbox.textchanged事件来实现这一点

Jquery方法:

<body>
    <form id="form1" runat="server">
    <div>
        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
        <asp:Button ID="Button1" runat="server" Text="Button" Enabled="false" />
    </div>
    </form>
    <script src="http://ajax.aspnetcdn.com/ajax/jquery/jquery-1.9.0.min.js" type="text/javascript"></script>
    <script type="text/javascript">
        $("#<%= TextBox1.ClientID %>").keyup(function () {
                $("#<%= Button1.ClientID %>").attr("disabled", $(this).val() == "");
        });
    </script>


</body>

$(“#”).keyup(函数(){
$(“#”)attr(“禁用”,$(this.val()=”);
});
也可以在服务器端执行此操作:

<asp:textbox id="TextBox1" runat="server" autopostback="True" ontextchanged="TextBox1_TextChanged"></asp:textbox>
<asp:button id="Button1" runat="server" enabled="False" text="Button" />

protected void TextBox1_TextChanged(object sender, EventArgs e)
{
    Button1.Enabled = !String.IsNullOrEmpty(TextBox1.Text);
}

受保护的void TextBox1\u TextChanged(对象发送方,事件参数e)
{
Button1.Enabled=!String.IsNullOrEmpty(TextBox1.Text);
}

@Hoangnnm解决方案看起来不错。只需包含较新的jQuery库,例如1.9.0版,而不是1.4.1版,后者已经过时:

<script src="http://ajax.aspnetcdn.com/ajax/jquery/jquery-1.9.0.min.js" type="text/javascript"></script>


您必须使用客户端java脚本(或jQuery)来实现此目标。@AlexBell我可以问您为什么不能在服务端执行此操作吗?谢谢您的回复。有什么方法可以在服务器端完成吗?谢谢,客户端比服务器端工作得更好。所以,我可能会坚持使用jquery。“$(this).val()=”)在代码中的作用是什么?你的代码工作得很好。我只是想理解它。谢谢$(this).val()==“”是一个条件表达式,它将根据文本框值返回布尔类型“true”或“false”。attr函数用于设置元素的属性,您可以在这里阅读更多内容:它意味着按钮已启用(换句话说,disabled=false;这是jQuery的典型语法)@hoangnnm为什么不直接将其设置为true和false?很抱歉,这是我第一次使用jquery。