0

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

谢谢

4

4 回答 4

2

ASP.NET 验证器提供了一个客户端 API,允许您:

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

ValidatorEnable函数的语法是:

 ValidatorEnable(rfvMyValidator, boolState);
于 2009-05-15T10:39:26.217 回答
1

我在一个小例子上试过这个,它对我有用:

我有

-2 文本框:TextBox1 和 TextBox2

-RequiredFieldValidator:RequiredFieldValidator1 与 ControlToValidate="TextBox1"

-RadioButton:必需的FieldValidator1

此代码由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\"");
        }
于 2009-05-15T10:40:34.217 回答
1

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

在后面的代码中,.Enable以及.Disable特定的必填字段验证器。

于 2009-05-15T10:19:36.173 回答
0

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

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

首先,您应该创建一个 ModelView 类,其中应包含与您的单选按钮对应的布尔属性。

只需使用 Codeplex 上提供的 Foolproof 验证库,它应该可以开箱即用地解决您的问题:https ://foolproof.codeplex.com/

除其他外,它支持以下“必需的”验证属性/装饰:

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

开始很容易:

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

然后剩下要做的就是装饰应该使用属性有条件地验证的字段,该[RequiredIfTrue]属性应该指向 ViewModel 中相应的单选按钮值。

于 2014-02-18T20:08:39.003 回答