所以我已经编写了一个自定义的jQuery验证器方法。它与一个或多个个人下拉列表相关联。 (我在asp.net,顺便说一下)
jQuery.validator.addMethod("dropdownBoxHasItemSelected", function (value, select, arg) {
var returnValue = false;
var selectedIndex = $(select).prop("selectedIndex");
if (selectedIndex != 0) {
returnValue = true;
}
return returnValue;
}, "Please select a item.");
所以这不是我的问题。
我必须在“页面级别”进行一些验证。 或者也许在“GridView”级别上更好地表达它。
以下是该方案: (我正在使用虚拟数据来解释变得更容易,也就是说,我真的没有玩具和食品)
我有一个网格视图。
Column A of the gridview is of no consequence of this, but it exists.
Column B of the gridview has a DropDownList for "FavoriteToy".
Column C of the gridview has a DropDownList for "FavoriteFood".
所以规则就是这样的。
对于gridview中的每一行:
You must pick a FavoriteToy or a FavoriteFood for each row.
You can pick a FavoriteToy OR a FavoriteFood, but not both on the same row.
If you pick a FavoriteToy of "TeddyBear" in RowX, none of the other rows can have TeddyBear chosen. (Aka, each row must have a distinct FavoriteToy chosen)
If you pick a FavoriteFood of "AppleButter" in RowX, none of the other rows can have AppleButter chosen. (Aka, each row must have a distinct FavoriteFood chosen)
如果需要,可以将新行添加到gridview。还有一个“删除”按钮,以防用户已经用尽所有FavoriteToy和FavoriteFood组合。
现在,我已经编写了所有验证逻辑(使用jQuery语法检查值并循环遍历所有内容)就好了。
我正在寻找有关如何使用jQuery.validator.addMethod连接“网格视图整体验证器”的建议。
我想我可以将它连接到asp:Label(客户端类型为“text”的“输入”),因此错误消息会弹出。
或许,网格视图在客户端呈现为“表”。
一般建议吗?
=============================================== =====================
到目前为止我所做的:
asp:net control:
<asp:HiddenField ID="hidGridViewValidatorPlaceHolder" runat="server" />
以及下面的方法
jQuery.validator.addMethod("gridViewValiatorMethod", function (value, select, arg) {
var returnValue = true;
var errorMsg = SuperValidationWrapper();
if (errorMsg != "") {
alert(errorMsg);
returnValue = false;
}
return returnValue;
}, "Please address the issues in the gridview.");
SuperValidationWrapper()具有所有loopty循环。我返回一个串联的字符串,有任何问题。我不喜欢那样,但这就是我所做的。
警告框为您提供详细信息和文本“请解决网格视图中的问题”。出现是否有任何问题。
赞赏任何改进。
答案 0 :(得分:1)
验证器确实用于验证字段,但由于您不想验证字段,因此无法将表达式绑定到字段。
您确实需要将“页面验证”逻辑放在提交处理程序
中