zoukankan      html  css  js  c++  java
  • 在ASP.NET MVC中使用Knockout实践07,自定义验证信息的位置与内容

    在前两篇中,体验了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"

    12

     

    自定义验证信息的内容

     

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

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

    13

  • 相关阅读:
    linux服务器挂掉自动重启脚本(转)
    shell中打印带有时间的日志的命令(转)
    libreoffice python 操作word及excel文档
    Python操作redis系列之 列表(list) (五)(转)
    docker占满linux磁盘根目录的解决办法
    docker 端口映射 及外部无法访问问题
    转:查看远端的端口是否通畅3个简单实用案例
    转: MAC认证码的说明
    取消Eclipse SVN的自动链接方式
    C++语法查询在线手册
  • 原文地址:https://www.cnblogs.com/darrenji/p/4070488.html
Copyright © 2011-2022 走看看