“页面级”的jQuery验证器

时间:2013-03-28 15:36:39

标签: jquery asp.net jquery-validate validation

所以我已经编写了一个自定义的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循环。我返回一个串联的字符串,有任何问题。我不喜欢那样,但这就是我所做的。

警告框为您提供详细信息和文本“请解决网格视图中的问题”。出现是否有任何问题。

赞赏任何改进。

1 个答案:

答案 0 :(得分:1)

验证器确实用于验证字段,但由于您不想验证字段,因此无法将表达式绑定到字段。

您确实需要将“页面验证”逻辑放在提交处理程序

http://docs.jquery.com/Plugins/Validation/validate#options