我有一个带有三个单选按钮的页面,具体取决于选择了哪个按钮我需要验证一些控件(使用必需的字段验证器)。除了使用自定义验证器之外,还有什么方法可以做到这一点吗?
由于
答案 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]
开始很容易:
所有剩下要做的就是装饰你的字段,这些字段应该使用[RequiredIfTrue]
属性进行有条件验证,该属性应该指向ViewModel中相应的radiobutton值。