如果文本框为空,则禁用按钮

本文关键字:按钮 文本 如果 | 更新日期: 2023-09-27 18:12:04

我想知道我是否可以创建一个实时事件来检查文本框的值。我的意思是,如果文本框是空的,按钮将无法点击。我在想,无论如何,除了验证在代码中做到这一点吗?

到目前为止我被困在这里:

if (YourName.Text = null)
{
       SubmitButton.Enabled = "False";
}

其中Yourname是文本框,SubmitButton是按钮:)

如果文本框为空,则禁用按钮

System.String提供了一对称为IsNullOrEmptyIsNullOrWhiteSpace的方便函数,您可以使用它们来测试对最终用户来说看起来为空的各种字符串:

if (string.IsNullOrWhiteSpace(YourName.Text)) {
    SubmitButton.Enabled = false; // <<== No double-quotes around false
} else {
    // Don't forget to re-enable the button
    SubmitButton.Enabled = true;
}

这将禁用按钮,甚至对于完全由空白字符组成的字符串,这在您验证名称时是有意义的。

以上与

相同
SubmitButton.Enabled = !string.IsNullOrWhiteSpace(YourName.Text);

比带有if的版本短

SubmitButton.Enabled = YourName.Text.Length > 0;

从禁用按钮开始。在文本框中添加TextChanged事件。每次检查字符串是否为空(在TextChanged事件处理程序中使用@dasblinkenlight的代码)。

这是一个老式的javascript方法。你可以使用jquery,但如果这就是你想要做的,那就太过分了。在下面的代码中,当通过键盘或鼠标/点击更改文本时,oninput事件会触发(您需要捕获所有文本,这应该为您完成)。然后,javascript获取文本框的内容,删除前面和后面的空白,并设置提交按钮上的禁用属性等于文本框为空,用.length == 0限定。

注意:如果你不想禁用只有空格的文本,将submit.disabled = (tb.value.trim().length == 0);更改为submit.disabled = (tb.value.length == 0);,从而删除对trim()方法的调用。trim()方法去除前面和后面的空白。

这种方法不需要回发来启用或禁用提交按钮。

<!doctype html>
<!-- tested in firefox -->
<html>
<head>
    <title>Demo</title>
    <script type="text/javascript">
        var enableInput = function() {
            var tb = document.getElementById("text_box");
            var submit = document.getElementById("submit");
            submit.disabled = (tb.value.trim().length == 0); 
        };
    </script>
</head>
<body>
    <form>
        <input type="text" id="text_box" name="test" oninput="enableInput();"></input><br/>
        <input id="submit" type="submit"></input>
    </form>
</body>
</html>