首页 > 代码库 > 在ASP.NET MVC中使用Knockout实践07,自定义验证信息的位置与内容
在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="http://www.mamicode.com/~/Scripts/knockout-3.2.0.js"></script>
<script src="http://www.mamicode.com/~/Scripts/knockout.validation.js"></script>
<script src="http://www.mamicode.com/~/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,自定义验证信息的位置与内容
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。