使用TextBox进行用户文本输入处理

omi*_*omi 1 c# asp.net textbox

我有这个控制权:

在此输入图像描述

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

这是代码:

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

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

有任何想法吗?

RMa*_*lke 6

是Web表单吗?在Web窗体中TextChanged,默认情况下不会触发TextBox 的事件.要触发事件,您必须AutoPostBack将TextBox 的属性设置为true.

但是,这会执行一个HTTP帖子,什么是丑陋的纠结,或者你可以将其包装在一个 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');
            }
        });

    });
});
Run Code Online (Sandbox Code Playgroud)