我有一个由几个 requiredfieldvalidators 组成的表单,并且有 2 个按钮一个添加和更新按钮。我只想将 13 个 requiredfieldvalidators 中的 5 个与更新按钮相关联,并且所有与添加按钮相关联是可能的,因为我遇到了这个问题。
问问题
493 次
2 回答
1
某些字段是否与这两个按钮相关?
如果存在与添加按钮相关的字段和与更新按钮相关的字段(但不相同),则可以在相关的字段、验证器和按钮上设置相同的 ValidationGroup 属性
如果有与添加和更新按钮相关的字段:
- 要么检查你的人体工程学......这听起来有点奇怪
- 或使用自定义验证器来检查您拥有的条件
于 2011-03-16T16:16:04.657 回答
0
将您的控件分成 2 个 div,然后使用 javascript 来控制验证器。
说单击“添加”启用验证器以进行添加,单击“更新”然后仅启用验证器进行更新。
我写了一些js代码似乎可以满足你的要求。迭代验证器并启用您需要的这些。然后清屏,删除错误信息。
$(function() {
hidedivTemplate();
});
function hidedivTemplate() {
$('#divTemplate').hide();
$('#divAuto').show();
goThroughValidators(enableAutoDIV_Validation);
}
function hidedivAuto() {
$('#divAuto').hide();
$('#divTemplate').show();
goThroughValidators(enableTemplateDIV_Validation);
}
function goThroughValidators(func) {
for (i = 0; i < Page_Validators.length; i++) {
var validator = Page_Validators[i];
func(validator);
}
//After the iteration, clean the error info on the screen
$("span[class='errorleft']").hide();
}
function enableAutoDIV_Validation(validatorObj) {
switch (validatorObj.controltovalidate) {
case "<%=AAA.ClientID%>":
case "<%=BBB.ClientID%>":
ValidatorEnable(validatorObj, true);
break;
default:
ValidatorEnable(validatorObj, false);
break;
}
}
function enableTemplateDIV_Validation(validatorObj) {
switch (validatorObj.controltovalidate) {
case "<%=CCC.ClientID%>":
case "<%=DDD.ClientID%>":
ValidatorEnable(validatorObj, true);
break;
default:
ValidatorEnable(validatorObj, false);
break;
}
}
完整的代码片段可以在这里找到http://codelife.cybtamin.com/2012/08/enable-and-disable-asp-net-validator-by-javascript/
于 2012-09-24T22:20:19.550 回答