我有这个控制权:
我正在尝试创建一种验证,每当用户向文本框输入文本时,“添加”按钮将被启用,当文本为“”(空)时,“添加”按钮为禁用。 我不想使用验证器。
代码如下:
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/