Asp.net 如果另一个文本框为空,请使用自定义验证程序禁用该文本框

Asp.net 如果另一个文本框为空,请使用自定义验证程序禁用该文本框,asp.net,customvalidator,Asp.net,Customvalidator,在我的项目中,我必须给用户一个选项,让他们提出一个安全问题并回答这个问题,所以我有两个文本框,一个用于提问,另一个用于回答,我想使用ASP.net自定义验证器来执行此任务,因此如果问题文本框为空,则答案文本框将被禁用,如果问题文本框不为空,则答案文本框将被启用。JavaScript在这里已经足够好了: <html> <head> <script type="text/javascript"> var minimumQuestionLength = 20; f

在我的项目中,我必须给用户一个选项,让他们提出一个安全问题并回答这个问题,所以我有两个文本框,一个用于提问,另一个用于回答,我想使用ASP.net自定义验证器来执行此任务,因此如果问题文本框为空,则答案文本框将被禁用,如果问题文本框不为空,则答案文本框将被启用。

JavaScript在这里已经足够好了:

<html>
<head>
<script type="text/javascript">
var minimumQuestionLength = 20;

function checkQuestionBox()
  {
    var questionLength=document.getElementById("question").value.length;

    if(questionLength < minimumQuestionLength)
    {
       return false;
    }
    return true;
  }
</script>
</head>
<body>

<h1 id="myHeader">Test</h1> 
<p>Question: <input type="text" id="question"/><br />
Answer: <input type="text" id="answer" onkeypress="return checkQuestionBox();"/>
</p>

</body>
</html>

var最小问题长度=20;
函数复选框()
{
var questionLength=document.getElementById(“问题”).value.length;
如果(问题长度<最小问题长度)
{
返回false;
}
返回true;
}
试验
问题:
答复:


相当简单。您还可以在开始时禁用“答案”,然后在问题正确后启用(如果您喜欢该选项)。也是简单的JavaScript。

如果文本框为空,则不会触发验证程序。但是,您可以在CustomValidator上设置属性ValidateEmptyText=“true”以绕过此操作。

请注意,此属性已关闭且不干净,尚未进行检查,以查看某些浏览器中是否存在需要编写代码的漏洞。您可以将JavaScript设置为自定义验证脚本并以这种方式进行处理,但这比我上面所做的要花费更多的时间。