我已經有了一些帶有文本框的簡單表單。這些文本框都有一個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. 使用代碼點火器形式驗證2個字段中的1個
- 5. 使用jQuery驗證器驗證兩個鏈接的字段
- 6. jQuery驗證只驗證一個字段
- 7. Laravel 5驗證 - 驗證2個字段的總和
- 8. jQuery驗證器繞過表單中某個字段的驗證
- 9. 單個字段的多個驗證器
- 10. 使用FormHelper驗證驗證datetime字段
- 11. 使用jQuery驗證字段驗證組
- 12. WPF驗證問題:如何使用涉及2個字段的驗證工作
- 13. 兩個字段的驗證
- 14. Jquery驗證器 - 單個字段的條件驗證
- 15. Laravel驗證:僅在另一個驗證字段時驗證字段
- 16. Jquery.validate.js驗證 - 使用2個遙控器?
- 17. regexpression asp.net驗證幾個字
- 18. 多個ASP.NET驗證器
- 19. Django:驗證多個字段
- 20. ParsleyJS - 驗證多個字段
- 21. 驗證多個空字段
- 22. Codeigniter:驗證兩個字段
- 23. 多個字段驗證
- 24. Asp.Net MVC 2驗證
- 25. jquery驗證 - 驗證隱藏區域中的幾個字段
- 26. 2個驗證器一次驗證一個
- 27. jquery驗證:我如何使一個字段驗證變化?
- 28. asp.net的MVC 2個DataAnnotations驗證
- 29. Asp.net中的Dropdownlist驗證使用必需的字段驗證程序
- 30. 使用2個字段的Laravel表單驗證唯一
爲什麼只是服務器端驗證處理?爲什麼不是客戶端和服務器端? – rrrr 2010-02-12 09:12:01
當然。 CustomValidator標籤可以具有額外的ClientValidationFunction =「customJSValidatingFunction」屬性。 – PanJanek 2010-02-12 09:20:11