ASP.NET中的可选验证

时间:2009-05-15 10:08:38

标签: asp.net validation-controls

我有一个带有三个单选按钮的页面,具体取决于选择了哪个按钮我需要验证一些控件(使用必需的字段验证器)。除了使用自定义验证器之外,还有什么方法可以做到这一点吗?

由于

4 个答案:

答案 0 :(得分:2)

ASP.NET验证器提供client-side API,允许您:

  • 验证客户端
  • 连接验证者客户端。
  • 启用或禁用客户端验证器。

ValidatorEnable函数的语法是:

 ValidatorEnable(rfvMyValidator, boolState);

答案 1 :(得分:1)

将OnSelectedIndexChanged添加到RadioButtonList(如果它们是单独的单选按钮控件,则选择CheckedChanged)

在后面的代码中,.Enable& .Disable具体必填字段验证器。

答案 2 :(得分:1)

我尝试了一个小例子,它对我有用:

我有

-2textboxes:TextBox1和TextBox2

-RequiredFieldValidator:RequiredFieldValidator1 with ControlToValidate =“TextBox1”

-RadioButton:RequiredFieldValidator1

此代码由RequiredFiledValidator生成:

<script type="text/javascript">
//<![CDATA[
var RequiredFieldValidator1 = document.all ? document.all["RequiredFieldValidator1"] : document.getElementById("RequiredFieldValidator1");
RequiredFieldValidator1.controltovalidate = "TextBox1";
RequiredFieldValidator1.errormessage = "RequiredFieldValidator";
RequiredFieldValidator1.evaluationfunction = "RequiredFieldValidatorEvaluateIsValid";
RequiredFieldValidator1.initialvalue = "";
//]]>
</script>

我希望当用户点击RadioButton1将验证切换到TextBox2时。

我就这样做了:

 protected void Page_Load(object sender, EventArgs e)
        {
            RadioButton1.Attributes.Add("onclick", "RequiredFieldValidator1.controltovalidate=\"TextBox2\"");
        }

答案 3 :(得分:0)

Waleed,您没有指定您使用的是ASP.Net表单还是ASP.Net MVC。

如果您使用的是ASP.Net MVC,答案很简单......

首先,你应该创建一个ModelView类,它应该包含与你的radiobuttons相对应的布尔属性。

只需使用Codeplex上提供的Foolproof验证库,即可为您的问题开箱即用:https://foolproof.codeplex.com/

它支持以下“requiredif”验证属性/装饰:

[RequiredIf]
[RequiredIfNot]
[RequiredIfTrue]
[RequiredIfFalse]
[RequiredIfEmpty]
[RequiredIfNotEmpty]
[RequiredIfRegExMatch]
[RequiredIfNotRegExMatch]

开始很容易:

  • 从提供的链接下载软件包
  • 添加对包含的.dll文件的引用
  • 导入附带的javascript文件
  • 确保您的视图引用其HTML中包含的javascript文件,以进行不引人注目的javascript和jquery验证。

所有剩下要做的就是装饰你的字段,这些字段应该使用[RequiredIfTrue]属性进行有条件验证,该属性应该指向ViewModel中相应的radiobutton值。