MVVM架构~knockoutjs系列之验证信息自定义输出

简介:

这个文章非常重要,也是非常必要的,在我们进行项目开发时,后台无所谓,对样式无要求,而网站前台来说,对样式要求严格,你的验证信息都是前台设计好的,所以,不能使用knockoutjs自带的了,我们需要将验证的消息输出到指定的元素上!

在写这个文章之前,我一直没有找到好的办法来实现这种功能,但我没有放弃,终于今天找到了比较不错的解决方案,对于一个元素的验证我们可以使用isValid()方法,而对于它的错误消息的显示,我们可以使用error()方法,注意是error()不是errors(),从这一点上我们可以看到,它是针对某点元素来说的,因为它是单数,呵呵.

功能实现

Html代码

<div class="fcs-item clearfix">
    <p class="thd"><span class="rstar">*</span>&nbsp;班级圈名称:</p>
    <p class="t-name">
        <input class="cname" style="width: 356px;" type="text" name="Title" data-bind="value:title" />
    </p>
    <p class="item-warn" data-bind="visible:!title.isValid(),text:title.error()"></p>
    <p class="item-warn item-r" data-bind="visible:title.isValid()">&nbsp;</p>
</div>

<div class="fcs-item clearfix">
    <p class="thd"><span class="rstar">*</span>&nbsp;班级圈价格:</p>
    <p class="t-name">
        <input class="cname" style="width: 356px;" type="text" name="price" data-bind="value:price" />
    </p>
    <p class="item-warn" data-bind="visible:!price.isValid(),text:price.error()"></p>
    <p class="item-warn item-r" data-bind="visible:price.isValid()">&nbsp;</p>
</div>

JS代码

 var model = function () {

        $(".validationMessage").hide();//关闭自动输出功能
        var self = this;
     
        self.id = ko.observable('@Model.TeacherInfoExtID');

        self.title = ko.observable('@Model.Title').extend({
            
            required: { params: true, message: "请输入班级圈名称" },
            minLength: { params: 1, message: "班级圈名称最少为1个字" },
            maxLength: { params: 20, message: "班级圈名称最多为20个字" }
        });

        self.price = ko.observable('@Model.TeacherPrice.Price').extend({
            required: { params: true, message: "请输入班级圈价格" },
            min: { params: 300, message: "班级圈价格最小为300" },
            max: { params: 500, message: "班级圈价格最大为500" }
        });
};
  var M = new model();
   ko.applyBindings(M);

网页载图

本文转自博客园张占岭(仓储大叔)的博客,原文链接:MVVM架构~knockoutjs系列之验证信息自定义输出,如需转载请自行联系原博主。

目录
相关文章
|
1月前
|
运维 Linux Apache
LAMP架构调优(一)——隐藏Apache版本信息
LAMP架构调优(一)——隐藏Apache版本信息
16 1
|
4月前
|
存储 前端开发
Flutter Provider状态管理---MVVM架构实战
Flutter Provider状态管理—MVVM架构实战 在Flutter中,状态管理是一个非常重要的概念。Flutter Provider是一种状态管理的解决方案,它提供了一种简单,灵活和高效的方法来管理Flutter应用程序中的状态。本文将详细介绍Flutter Provider的使用,以及如何在MVVM架构中使用它。
147 0
|
1月前
|
SQL 存储 数据管理
数据库系统架构与DBMS功能探微:现代信息时代数据管理的关键
数据库系统架构与DBMS功能探微:现代信息时代数据管理的关键
35 1
|
1月前
|
移动开发 前端开发 C#
MVVM风格架构
MVVM风格架构
28 2
|
2月前
|
存储 前端开发 Java
信息收集 -- JBoss架构
信息收集 -- JBoss架构
16 4
|
2月前
|
前端开发 JavaScript API
|
3月前
|
设计模式 存储 前端开发
【各种问题处理】MVC、MVP、MVVM 、MVI、VIPER 架构(设计模式)
【1月更文挑战第13天】【各种问题处理】MVC、MVP、MVVM 、MVI、VIPER 架构(设计模式)
|
3月前
|
存储 索引 Windows
PACS影像信息数字化存储系统源码,C/S架构的医学影像系统源码
全院影像设备联网与影像信息数字化存储,建立涵盖全院的PACS/RIS系统,实现从预约、登记、分诊、排队叫号、检查、诊断阅片、报告发布、自助胶片打印等流程化管理。 PACS系统应用在医院影像科时,它直接与CT、MR、ECT、DSA和DR等提供DICOM标准图像的医学设备进行软硬对接。该系统应用在超声、内窥镜、病理等科室时,提供视频、普通图片的医学设备进行软硬对接。检查结果以DICOM、BMP、JPG等多种格式进行长期保存,形成影像历史、诊断历史。这些历史数据可供医生重复调阅,作为编写诊断报告的重要参考。
PACS影像信息数字化存储系统源码,C/S架构的医学影像系统源码
|
11天前
|
API 数据库 开发者
构建高效可靠的微服务架构:后端开发的新范式
【4月更文挑战第8天】 随着现代软件开发的复杂性日益增加,传统的单体应用架构面临着可扩展性、维护性和敏捷性的挑战。为了解决这些问题,微服务架构应运而生,并迅速成为后端开发领域的一股清流。本文将深入探讨微服务架构的设计原则、实施策略及其带来的优势与挑战,为后端开发者提供一种全新视角,以实现更加灵活、高效和稳定的系统构建。
18 0
|
9天前
|
Kubernetes 安全 Java
构建高效微服务架构:从理论到实践
【4月更文挑战第9天】 在当今快速迭代与竞争激烈的软件市场中,微服务架构以其灵活性、可扩展性及容错性,成为众多企业转型的首选。本文将深入探讨如何从零开始构建一个高效的微服务系统,覆盖从概念理解、设计原则、技术选型到部署维护的各个阶段。通过实际案例分析与最佳实践分享,旨在为后端工程师提供一套全面的微服务构建指南,帮助读者在面对复杂系统设计时能够做出明智的决策,并提升系统的可靠性与维护效率。