嘿伙计们,我有一个快速简单的问题,我猜你。 我想知道我是否可以创建一个实时事件来检查文本框的值。我的意思是如果文本框为空,则按钮不可点击。我想除了验证在代码中执行此操作之外还有吗? 到目前为止我一直困在这里:
if (YourName.Text = null)
{
SubmitButton.Enabled = "False";
}
其中Yourname是文本框,SubmitButton是按钮:)
答案 0 :(得分:6)
System.String
提供了一对名为IsNullOrEmpty
和IsNullOrWhiteSpace
的便捷函数,您可以使用这些函数来测试对最终用户来说空白的各种字符串:
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
的版本。
答案 1 :(得分:2)
SubmitButton.Enabled = YourName.Text.Length > 0;
答案 2 :(得分:2)
好吧,从禁用按钮开始。将TextChanged事件添加到文本框中。每次都检查字符串是否为空(在TextChanged事件处理程序中使用@dasblinkenlight的代码。
答案 3 :(得分:1)
这是一个老式的javascript方法。你可以使用jquery,但如果这是你想做的全部,那就太过分了。在下面的代码中,oninput
事件在通过键盘或鼠标/点击更改文本时触发(您需要捕获所有内容,这应该为您执行此操作)。然后,javascript获取文本框的内容,删除前面和尾随空格,并将提交按钮上的disabled属性设置为等于文本框为空,用.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>