所以我已经编写了一个自定义的 jQuery 验证器方法。它与 1 个或多个单独的下拉列表相关联。(我在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 (客户端上 type="text" 的“输入”),因此错误消息会在那里弹出。
或者,网格视图在客户端呈现为“表格”。
有什么一般性的建议吗?
==================================================== ===================
到目前为止我所做的:
asp:net 控制:
<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() 具有所有循环。我返回一个有任何问题的串联字符串。我不喜欢那样,但这就是我所做的。
警报框为您提供详细信息,以及“请解决网格视图中的问题”文本。如果有任何问题出现。
任何改进表示赞赏。