在前两篇中,体验了Knockout的基本验证和自定义验证。本篇自定义验证信息的显示位置与内容。

自定义验证信息的显示位置

通常,Knockout的验证信息紧跟在input后面,通过validationMessage属性可以自定义验证信息的显示位置。

@{
    ViewBag.Title = "Index";
    Layout = "~/Views/Shared/_Layout.cshtml";
}
<style type="text/css">
    .error {
        color: red;
    }
</style>
<div>
    <input type="text" data-bind="value: name"/>
    <p class="error" data-bind="validationMessage: name"></p>
</div>
@section scripts
{
    <script src="~/Scripts/knockout-3.2.0.js"></script>
    <script src="~/Scripts/knockout.validation.js"></script>
    <script src="~/Scripts/zh-CN.js"></script>
    <script type="text/javascript">

        //使用构造函数创建一个View Model
        var Product = function () {
            this.name = ko.observable().extend({ minLength: 3 });
        };

        //创建实例
        var product = new Product();
        //验证设置
        var knockoutValidationSettings = {
            insertMessages: false,
            decorateElement: false,
            errorMessageClass: 'error',
            errorElementClass: 'error',
            errorClass: 'error',
            errorsAsTitle: true,
            parseInputAttributes: false,
            messagesOnModified: true,
            decorateElementOnModified: true,
            decorateInputElement: true
        };
        ko.validation.init(knockoutValidationSettings, true);

        //绑定
        ko.applyBindings(product);

        $(function () {
            ko.decorateElement = false;
        });
    </script>
}

以上,
● 把验证信息显示在了data-bind属性值为validationMessage: name的input上
● 由于重新设置了Knockout-Validation,必须使用ko.validation.init()重新初始化
● insertMessages表示是否把验证信息显示在紧跟input的位置
● decorateElement表示是否要为input加上class="error"

自定义验证信息的内容

如果想重写验证信息的内容,修改如下:

        var Product = function () {
            this.name = ko.observable().extend({ minLength: { params: 3, message: "要我说最小长度是3" } });
        };

在ASP.NET MVC中使用Knockout实践07,自定义验证信息的位置与内容相关推荐

  1. ASP.NET Core 中如何通过 AuthorizeAttribute 做自定义验证?

    咨询区 jltrem: 我想在 ASP.NET Core 中用 authorization 特性实现一个自定义验证,在之前的版本中,我可以用系统提供的 bool AuthorizeCore(HttpC ...

  2. 在ASP.NET MVC中使用DropDownList

    在ASP.NET MVC中,尽管我们可以直接在页面中编写HTML控件,并绑定控件的属性,但更方便的办法还是使用HtmlHelper中的辅助方法.在View中,包含一个类型为HtmlHelper的属性H ...

  3. ASP.NET MVC中使用DropDownList

    在ASP.NET MVC中,尽管我们可以直接在页面中编写HTML控件,并绑定控件的属性,但更方便的办法还是使用HtmlHelper中的辅助方法.在View中,包含一个类型为HtmlHelper的属性H ...

  4. mvc html dropdownlist,ASP.NET MVC中使用DropDownList地详解

    DropDownList控件又称下拉列表框控件,DropDownList控件动态连接到数据库,按指定 条件从数据库 中查询 出列表选项数据,然后绑 定到控件,可以方便快速地显示出多个下拉选 项 . 同 ...

  5. 通过源代码研究ASP.NET MVC中的Controller和View(二)

    通过源代码研究ASP.NET MVC中的Controller和View(一) 在开始之前,先来温习下上一篇文章中的结论(推论): IView是所有HTML视图的抽象 ActionResult是Cont ...

  6. 在Asp.Net MVC中实现RequiredIf标签对Model中的属性进行验证

    在Asp.Net MVC中可以用继承ValidationAttribute的方式,自定制实现RequiredIf标签对Model中的属性进行验证 具体场景为:某一属性是否允许为null的验证,要根据另 ...

  7. ASP.NET MVC中你必须知道的13个扩展点

         ScottGu在其最新的博文中推荐了Simone Chiaretta的文章13 ASP.NET MVC extensibility points you have to know,该文章为我 ...

  8. Asp.net mvc中的Ajax处理

    在Asp.net MVC中的使用Ajax, 可以使用通用的Jquery提供的ajax方法,也可以使用MVC中的AjaxHelper. 这篇文章不对具体如何使用做详细说明,只对于在使用Ajax中的一些需 ...

  9. 在 ASP.NET MVC 中使用 Chart 控件

    在 .NET 3.5 的时候,微软就提供了一个 Chart 控件,网络上有大量的关于在 VS2008 中使用这个控件的文章,在 VS2010 中,这个控件已经被集成到 ASP.NET 4.0 中,可以 ...

最新文章

  1. word自动消除html标签,清理Word生成HTML的冗余;清理与清除HTML标签
  2. import win32api 安装pip install pypiwin32
  3. Java抽象类和接口
  4. mysql如果数据不存在,则插入新数据,否则更新
  5. 支持drupal的空间
  6. C# TextBox输入数字 TextBox输入限制 TextBox输入字符 KeyPress
  7. Atitti 类库 开发者 常用 api 目录 1.1. Meta anno注解元数据api 1 1.2. Ref 反射api 1 1.3. Database meta api 1 1.4.
  8. 根据省份名称返回省份简称(js代码)
  9. 最全MySQL数据类型详解
  10. 堪称Python入门新华字典的《Python背记手册》高清无码版,开源免费下载
  11. 10年测试经验的性能测试工程师简历模板你见过吗?
  12. 虚拟服务器可以挂机游戏吗,云主机可以挂机吗?云服务器如何挂机/挂软件/游戏?...
  13. BI_开发_问题:ORA-26002: Table DWH.W_XACT_TYPE_D has index defined upon it.
  14. 微软75亿美元收购ZeniMax及其旗下工作室;KPS同意21亿美元收购Garrett全部资产 | 美通企业日报...
  15. 这些数据爬虫网站,帮你工作提质增效,还不收藏?
  16. 基于MATLAB的线性规划:linprog用法
  17. 阿里云Linix上 python脚本 发邮件发送不出去问题
  18. 数据分享|R语言关联规则挖掘apriori算法挖掘评估汽车性能数据
  19. 1323: 三角形判定
  20. 利用ffmpeg将mp4视频转换成多张jpg图片

热门文章

  1. Shiro 整合SpringMVC 并实现权限管理,登录和注销
  2. iOS 设计模式之抽象工厂
  3. ZOJ 1015 弦图判定
  4. 与成都的幸福行动家交流GTD
  5. Hi3515主板UBoot参数备份
  6. exit()和_exit()的区别
  7. php开发面试题---面试常用英语(你能介绍你自己吗?)
  8. MySQL查询优化之索引
  9. linux下查看CPU、内存、磁盘信息
  10. Python HTTP Error 403: Forbidden