Asp.net验证控件具有ValidationGroup属性,对验证控件进行分组验证。Button也具有ValidationGroup属性,表明其要触发哪个分组的验证控件,问题是此属性只能设置一个分组,如果要触发多个分组的验证控件,该如何作呢?其实我们可以通过自己写JS脚本来包装验证控件的方法,从而实现解发多个分组的功能。
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
<script type="text/javascript"> //让Button能验证多个分组 function ValidatePage(validationGroups) { var list = validationGroups.split('&'); for (var i = 0; i < Page_Validators.length; i++) { var validator = Page_Validators[i]; //如果是待验证的分组,就进行验证,否则认为验证通过。 if ((validator.validationGroup && ExistsGroup(list, validator.validationGroup)) || (!validator.validationGroup && ExistsGroup(list, ''))) { ValidatorValidate(validator, validator.validationGroup); Page_IsValid = Page_IsValid && validator.isvalid; } else { validator.isvalid = true; ValidatorUpdateDisplay(validator); } } //ValidationSummary for (var i = 0; i < list.length; i++) { ValidationSummaryOnSubmit(list[i]); } Page_BlockSubmit = !Page_IsValid; return Page_IsValid; } //指定的分组是否在要验证的分组列表中 //true表示在其中,false表示不在其中 function ExistsGroup(list, group) { var found = false; for (i = 0; i < list.length; i++) { if (list[i] == group) { found = true; break; } } return found; } </script>
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
<asp:Button runat="server" ID="btnTest" Text="Test" OnClientClick="return ValidatePage('vgJieCi&vgPC');" OnClick="btnTest_Click" />
这样,我们就能让Button解发多个分组的验证了。