我已经有了一些带有文本框的简单表单。这些文本框都有一个RequiredFieldValidator。如果填充字段1,则需要禁用字段2的RequiredFieldValidator,因为只需要其中一个字段。什么是完成这个最好的方法?使用asp.net验证器验证2个字段中的1个
1
A
回答
1
目前我用JavaScript解决了它的处理程序,我可以正常使用的验证。
<script language="javascript" type="text/javascript">
function CheckPhoneValidator(txtEmail)
{
var phoneValidator = document.getElementById('<%= ReqPhone.ClientID %>');
ValidatorEnable(phoneValidator, txtEmail.value == '' ? true : false);
}
function CheckEmailValidator(txtPhone)
{
var emailValidator = document.getElementById('<%= ReqEmail.ClientID %>');
var emailRegexValidator = document.getElementById('<%= RegexEmail.ClientID %>');
ValidatorEnable(emailValidator, txtPhone.value == '' ? true : false);
ValidatorEnable(emailRegexValidator, txtPhone.value == '' ? true : false);
}
而这些控件:
<tr>
<td>
E-mail adres:
</td>
<td>
<asp:TextBox ID="TxtEmail" runat="server" onchange="javascript:CheckPhoneValidator(this);"></asp:TextBox>
<asp:RequiredFieldValidator ID="ReqEmail" runat="server" ControlToValidate="TxtEmail" ErrorMessage="U moet een e-mail invullen als u geen telefoonnummer heeft ingevuld." Display="Dynamic" ValidationGroup="Contact"> </asp:RequiredFieldValidator>
<asp:RegularExpressionValidator ID="RegexEmail" runat="server" ControlToValidate="TxtEmail" ErrorMessage="Dit is geen geldig e-mail adres." Display="Dynamic" ValidationExpression="([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})" ValidationGroup="Contact"> </asp:RegularExpressionValidator>
</td>
</tr>
<tr>
<td>
Telefoonnummer:
</td>
<td>
<asp:TextBox ID="TxtPhone" runat="server" onchange="javascript:CheckEmailValidator(this);"></asp:TextBox>
<asp:RequiredFieldValidator ID="ReqPhone" runat="server" ControlToValidate="TxtPhone" ErrorMessage="U moet een telefoonnummer invullen als u geen e-mail heeft ingevuld." Display="Dynamic" ValidationGroup="Contact"> </asp:RequiredFieldValidator>
</td>
</tr>
1
在这种情况下,使用CustomValidator与服务器端验证处理程序更简单。你应该自定义验证添加到两个控件:
<asp:TextBox runat="server" id="control1" />
<asp:CustomValidator runat="server" id="cusCustom1" controltovalidate="control1" onservervalidate="cusCustom_ServerValidate" errormessage="your message" />
<asp:TextBox runat="server" id="control2" />
<asp:CustomValidator runat="server" id="cusCustom2" controltovalidate="control2" onservervalidate="cusCustom_ServerValidate" errormessage="your message" />
和实施类似
protected void cusCustom_ServerValidate(object sender, ServerValidateEventArgs e)
{
e.IsValid = (!string.IsNullOrempty(control1.Text)) || (!string.IsNullOrempty(control2.Text))
}
相关问题
- 1. jQuery验证2个字段
- 2. 使用验证器控件验证asp.net中的日期字段
- 3. hibernate验证器:验证2个字段匹配
- 4. 使用jQuery验证器验证两个链接的字段
- 5. jQuery验证只验证一个字段
- 6. 单个字段的多个验证器
- 7. 使用jQuery验证字段验证组
- 8. WPF验证问题:如何使用涉及2个字段的验证工作
- 9. Laravel验证:仅在另一个验证字段时验证字段
- 10. Jquery.validate.js验证 - 使用2个遥控器?
- 11. 多个字段验证
- 12. ParsleyJS - 验证多个字段
- 13. Codeigniter:验证两个字段
- 14. 验证多个空字段
- 15. 2个验证器一次验证一个
- 16. Asp.Net MVC 2验证
- 17. jquery验证:我如何使一个字段验证变化?
- 18. asp.net的MVC 2个DataAnnotations验证
- 19. Asp.net中的Dropdownlist验证使用必需的字段验证程序
- 20. 使用jquery验证字段
- 21. 使用isset验证字段
- 22. 使用jQuery验证字段
- 23. Symfony 2中的等效字段验证
- 24. ASP.NET验证器
- 25. Access VB中的多个字段验证?
- 26. 验证Django中ModelForm的单个字段
- 27. HTML5浏览器验证 - 1表单,2个按钮,需要更改验证
- 28. 验证asp.net日历日期将来使用asp.net验证器
- 29. jQuery,表单验证,验证每个字段后的消息
- 30. 隐藏和显示字段仍使用ASP.NET MVC 2验证隐藏字段客户端验证
为什么只是服务器端验证处理?为什么不是客户端和服务器端? – rrrr 2010-02-12 09:12:01
当然。 CustomValidator标签可以具有额外的ClientValidationFunction =“customJSValidatingFunction”属性。 – PanJanek 2010-02-12 09:20:11