【发布时间】:2012-03-12 20:16:09
【问题描述】:
我正在运行时创建一些文本框,如果文本框留空,我想更改文本框的颜色 然后用户提交表单。
我正在使用代码隐藏方法,这是我在 .aspx.cs 文件中编写的代码
textBoxObj 是我在运行时创建的文本框对象,它是我想要对其进行空验证的对象。
CustomValidator customValidatorObj = new CustomValidator();
customValidatorObj.ControlToValidate = textBoxObj.ID;
customValidatorObj.ClientValidationFunction = "changeColorofTextBox";
我在 .aspx 文件中编写了一个小的 Javascript sn-p,如下所示(我还没有编写更改颜色的逻辑, 只是让它暂时无效)
<script type="text/javascript">
function changeColorofTextBox(oSrc, args) {
if (args.Value.length > 0) {
args.IsValid = true;
}
else {
args.IsValid = false;
}
}
</script>
在表单的提交按钮点击功能中,我有这个检查if(Page.IsValid),然后提交表单。但是,即使文本框为空, 表单被提交。似乎该功能甚至没有被击中。你对我做错了什么有任何指示吗? 无论是客户端验证还是服务器端验证,我都可以。
编辑
我得到了错误,我只需要这样做
customValidatorObj.ValidateEmptyText = true;
它开始工作了。谢谢,我没有意识到 customValidator 类不会尝试验证控件是否为空白。
但我又卡住了:(
在表单中,我有很多文本框。假设用户输入了 3 个文本框的文本并将其中 2 个留空,我如何找到文本框 id 以便我只能更改空白的颜色。或者,如何在 javascript 中编写代码以在运行时找出控件 ID?
我知道我们必须这样做
document.getElementById(CONTROLIDGOESHERE).style.backgroundColor = "red";
但是我如何将 CONTROLIDGOESHERE 值传递给 getElementById 函数?
任何指点,谢谢。
【问题讨论】:
标签: c# asp.net validation customvalidator