【问题标题】:Getting the message from jquery validation when using UnobtrusiveJavaScript使用 UnobtrusiveJavaScript 时从 jquery 验证中获取消息
【发布时间】:2012-08-31 11:16:18
【问题描述】:

嘿,StackOverflow 爱好者。

我正在尝试将我的旧网站更新到最新版本的 Asp.net MVC4。它以前在 MVC2 上,在 MVC2 上,它允许我将我的 jquery 和客户端的东西与任何后端的东西分开。但我猜想使用 MVC4,他们希望您将很多验证内容直接绑定到您的模型等等。

但是我有一个以前运行良好的客户端 jquery 验证脚本,我想知道,我怎样才能让它再次运行。具体来说,如果用户输入超过 4000 个字符,我有一个不会被验证的字段。否则就不需要了。这是之前在 MVC2 中工作的客户端代码......

Comment: {
    required: function (element) {
    return $(element).val().length > 4000;
    },
    maxlength: 4000
}

以及如果验证未通过将显示的消息...

messages: {
                ...
                Comment: 'Why dont you stop attempting to put in more than 4000 characters?  Thanks...'
            }

如何使用 MVC 4 做到这一点?为了在另一个字段中显示任何内容,我注意到我需要在模型中的字段上放置一个 required...

    [Required(ErrorMessage = "Please select an Admit Date")]
    public DateTime? AdmitDate { get; set; }

有没有办法编写一个需求函数,以便只在某些情况下才需要它?如果您知道我的意思,我宁愿将其保留在客户端以将我的担忧分开。任何帮助将不胜感激。

【问题讨论】:

    标签: asp.net-mvc-4 unobtrusive-javascript jquery-validate


    【解决方案1】:

    您可以使用[Required][StringLength] 来限制评论的输入。

    [Required(ErrorMessage = "Please fill in a comment")]
    [StringLength(4000, ErrorMessage = "Why dont you stop attempting to put in more than 4000 characters?  Thanks...")]
    public string Comment { get; set; }
    

    默认数据注释不涵盖条件要求的约束。处理“复杂”验证的默认方式是在模型上实现 IValidatableObject 接口。

    但是,由于您正在寻找客户端解决方案,我们可以查看可能为您解决此问题的其他框架。例如,MVC Foolproof Validation 支持同样适用于客户端的 [RequiredIf] 属性。

    【讨论】:

    • 男孩,我只是想念验证插件和破解。
    猜你喜欢
    • 2019-07-17
    • 2016-05-27
    • 2020-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-27
    • 2019-02-01
    • 1970-01-01
    相关资源
    最近更新 更多