【问题标题】:Datannotations + asp.net mvc 3 + client side validation (does not kick in until a form submit happens)Datannotations + asp.net mvc 3 + 客户端验证(在表单提交发生之前不会启动)
【发布时间】:2011-01-27 23:50:57
【问题描述】:

我正在使用 asp.net mvc 3、jquery validate、通畅的 javascript 和数据注释。

我注意到说你在文本框 A 中是必需的,然后点击它,没有验证将如何。就像 javascript 没有启动一样。如果他们单击提交按钮,则会弹出验证。

然后,如果他们返回文本框 A 并开始在其中输入,验证就会消失。所以客户端验证正在工作。

我想知道是否可以立即启动客户端验证?

【问题讨论】:

    标签: asp.net-mvc asp.net-mvc-3 jquery-validate data-annotations


    【解决方案1】:

    这是发生了什么以及为什么。

    1. 文本框开始为空。您进入和退出选项卡,但不会发生任何验证(除非您点击提交)
    2. 您输入了一些值。您选项卡,现在验证触发(但您的文本框有一个值,所以没有错误)
    3. 您返回文本框并清除值。您退出,现在您会收到验证消息。

    这种行为的原因是我们不想仅仅因为用户无法决定他们想先填写哪个字段而在整个表单中开始弹出错误。

    【讨论】:

    • 当页面加载时不会弹出验证错误。但是,如果用户单击一个框然后离开,我认为它应该弹出(我的意思是他们正在使用 jquery validate 并且它会这样做)
    【解决方案2】:

    这就是实现 ASP.NET MVC 3 不显眼的客户端验证的方式。如果您想更改此行为,您可以随时使用 jquery.validate 插件编写自定义验证规则和选项:

    $('#myForm').validate({
        rules: {
            name: {
                email: true
            }
        }
    });
    

    【讨论】:

    • 所以有没有办法添加喜欢的设置来改变这个?我不想做你上面的事情,因为这违背了使用注释的目的(只在一个地方写代码)
    猜你喜欢
    • 2014-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-03
    • 2011-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多