c# - 使用 TextBox 处理用户文本输入

标签 c# asp.net textbox

我有这个控制权:

enter image description here

我正在尝试创建一种验证,每当用户向文本框输入文本时,“添加”按钮将被启用,当文本为“”(空)时,“添加”按钮为禁用。 我不想使用验证器。

代码如下:

protected void addNewCategoryTB_TextChanged(object sender, EventArgs e)
    {
        if (addNewCategoryTB.Text != "")
            addNewCategoryBtn.Enabled = true;
        else
            addNewCategoryBtn.Enabled = false;
    }

问题是,当用户输入文本时,“添加”按钮不会从禁用变为启用(反之亦然)...

有什么想法吗?

最佳答案

它是 Web 表单吗?在 Web 窗体中,TextBox 的 TextChanged 事件默认不会触发。 为了触发该事件,您必须将 TextBox 的 AutoPostBack 属性设置为 true。

但是,这会执行 HTTP post,这是丑陋的问题,或者您可以将其包装在 UpdatePanel

一个更优雅的选择是使用 jQuery 来做到这一点,要在 jQuery 中做到这一点,您需要一些代码,例如:

$(document).ready(function() {
    $("#<%= yourTextBox.ClientID %>").change(function() {
        var yourButton = $("#<%= yourButton.ClientID %>")

        yourButton.attr('disabled','disabled');
        yourButton.keyup(function() {
            if($(this).val() != '') {
                yourButton.removeAttr('disabled');
            }
        });

    });
});

关于c# - 使用 TextBox 处理用户文本输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16617301/

相关文章:

c# - 获得顶级域名的简单方法?

c# - 点击或单击 TextBox 时执行代码?

c# - 如何在 Windows 文本框中将字符串转换为大写?

asp.net - ASP.Net 中的对象上下文

javascript - 如何使用 HTML 和 javascript 上传自己的文件

c# - 如何在 UserControl 中设置设计 View 项,以便多个子控件具有这些项

c# - 如何在 C# 中将长字符串打印到多个页面

c# - XAML - 逗号分隔的依赖属性

c# - 将类转换为另一个类或将类转换为另一个类

javascript - jQuery 弹出窗口与 Asp.Net MVC 不能很好地配合