Jquery 向使用Serenity模板的ASP.NET应用程序添加字段验证

Jquery 向使用Serenity模板的ASP.NET应用程序添加字段验证,jquery,asp.net,jquery-validate,Jquery,Asp.net,Jquery Validate,我目前正在开发一个使用VisualStudio中的Serenity模板(Serene)的基本CRUD web应用程序。此模板提供对多个插件的访问。Sergen插件生成c#和html文件,为指定数据库创建CRUD表。jQuery验证插件用于修改客户端字段验证。我试图通过将以下jQuery和regex组合(注释部分)添加到TableIndex.cshtml文件(由Sergen生成)来向频率输入字段添加自定义字段验证: 不幸的是,字段验证仍然没有发生。假设您的方法的其余部分是正确的,那么您就错误地构造

我目前正在开发一个使用VisualStudio中的Serenity模板(Serene)的基本CRUD web应用程序。此模板提供对多个插件的访问。Sergen插件生成c#和html文件,为指定数据库创建CRUD表。jQuery验证插件用于修改客户端字段验证。我试图通过将以下jQuery和regex组合(注释部分)添加到TableIndex.cshtml文件(由Sergen生成)来向频率输入字段添加自定义字段验证:


不幸的是,字段验证仍然没有发生。

假设您的方法的其余部分是正确的,那么您就错误地构造了
规则
对象

$("#TableDialog1_Form").validate({
    rules: {
        TableDialog1_Frequency: "required TableDialog1_Frequency",
    },
});
当存在多个规则时,不能使用此速记列出规则。还不清楚您是否在字段和规则上使用了相同的名称

方法:参数使用
键:值
对,如下所示

$("#TableDialog1_Form").validate({
    rules: {
        field_name: {  // <- NAME of the field here
            required: true,
            TableDialog1_Frequency: true
        },
        another_field_name: {
            // rules for this field
        }, 
        // remaining fields
    },
    // other validate options, etc.
});
名称
无关紧要,只要:

  • 该字段包含一个
    名称
  • 名称
    对于
    表单是唯一的


我还质疑您对自定义方法命名的选择。如果规则将输入验证为时间格式,那么可能应该将其命名为更通用的名称,如
time
。自定义规则可以在无限数量的字段上使用。

您是否将不引人注目的验证插件作为ASP的一部分使用?如果是这样,那么就不能构造对
.validate()
的调用,因为它将被忽略,而由不引人注目的验证插件自动构造调用。这就是使用不引人注目的验证的全部意义。不,我没有使用那个插件。我也不能(或者至少不知道如何/在我的解决方案中找不到)访问模态表单组件的html代码,这会阻止我添加数据属性。
$(document).ready(function () {
    $.validator.addMethod(
        "regex",
        function (value, element, regexp) {
            var re = new RegExp(regexp);
            return this.optional(element) || re.test(value);
        },
        "Please check your input."
    );
});

$(document).on('click', '.tool-button.save-and-close-button', function () {
    var item = $("div.field.Frequency input").attr("id");
    var abc = $("div.s-Form form").attr("id");
    $(abc).validate();
    $(item).rules("add", {
        regex: "^(\d)+(d|h|m|s)$"
    });
    $(abc).validate();
});

$(document).on('click', '.tool-button.apply-changes-button.no-text', function () {
    var item = $("div.field.Frequency input").attr("id");
    var abc = $("div.s-Form form").attr("id");
    $(abc).validate();
    $(item).rules("add", {
        regex: "^(\d)+(d|h|m|s)$"
    });
    $(abc).validate();
});
$("#TableDialog1_Form").validate({
    rules: {
        TableDialog1_Frequency: "required TableDialog1_Frequency",
    },
});
$("#TableDialog1_Form").validate({
    rules: {
        field_name: {  // <- NAME of the field here
            required: true,
            TableDialog1_Frequency: true
        },
        another_field_name: {
            // rules for this field
        }, 
        // remaining fields
    },
    // other validate options, etc.
});
<input name="foo234" type="text" class="required TableDialog1_Frequency" ....