条件验证不适用于匿名淘汰赛验证规则

2024-03-28

我的视图模型中有以下属性,它们使用淘汰验证,其中之一是自定义验证来检查密码匹配。

model.Password = ko.observable()
                  .extend({ required: { message: "Password is required.", 
                        params: true,
                        onlyIf: function () { return model.IsCredentialsRequired(); }}
                    });


model.ConfirmPassword = ko.observable().
                        extend({ validation: { validator: mustEqual,
                        message: 'Passwords do not match.',
                        params: model.Password,               
                        onlyIf: function () { return model.IsCredentialsRequired(); } }
                    });

自定义验证函数的代码

var mustEqual = function (val, other) {
                return val == other();
            };

我找到OnlyIf条件工作正常model.Password根据model.IsCredentialsRequired()但它不适合model.ConfirmPassword,有人可以帮助我为什么会发生这种情况吗?还有其他方法可以对自定义规则使用条件验证吗?

提前致谢


Knockout-validation 目前不支持匿名规则的“onlyIf”。但它支持自定义规则。因此,您可以创建自定义规则并使用 onlyIf :

ko.validation.rules['confirmPasswordMatches'] = {
    validator: function (val, params) {
        var otherValue = params;
        return val === ko.validation.utils.getValue(otherValue);
    },
    message: 'Passwords do not match.',
};
ko.validation.registerExtenders();

function ViewModel() {
    var self = this;

    self.IsCredentialsRequired = ko.observable(true);

    self.Password = ko.observable()
        .extend({
            required: {
                message: "Password is required.",
                params: true,
                onlyIf: self.IsCredentialsRequired
            }
    });

    self.ConfirmPassword = ko.observable().
    extend({
            confirmPasswordMatches: {
            params: self.Password,
            onlyIf: self.IsCredentialsRequired
        }
    });

}

Fiddle: http://jsfiddle.net/delixfe/mFAEx/ http://jsfiddle.net/delixfe/mFAEx/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

条件验证不适用于匿名淘汰赛验证规则 的相关文章

  • 敲除剑道问题通过计算的可观察值进行绑定

    我尝试使用knockout kendo js 在knockout forEach 模板中声明kendo dropdownlist 控件 以便当新项目添加到knockout 可观察数组时 新的kendo dropdownlist 会在UI 中
  • 正确处理浏览器资源

    我有一个网络应用程序 可以在很长一段时间内动态加载数据 数据内有图像的链接 然后在浏览器中呈现这些图像 e g var object Name ko observable Foo Ref ko observable Bar ImageUrl
  • Knockout 无法处理绑定

    当文本未定义时如何绑定文本 例如名称不可用 table class table thead tr th class col md 4 ID th th class col md 4 Name th tr thead tbody tr td
  • 在 Android/Cordova/Knockout 中捕获带有数字输入的“Enter”按键

    我正在使用 Cordova PhoneGap 2 5 0 Knockout 2 1 0 和 jQuery Mobile 1 3 0 创建 Android 应用程序 I have created an input with type numb
  • Visual Studio 2010 intellisense for KnockoutJS inside RequireJS

    我想在 Visual Studio 2010 中获得智能感知 用于淘汰 JS 经过一番研究后我得到的是 reference path lib knockout knockout 2 3 0 debug js gt ko WeGotIntel
  • 从.ajax()调用加载knockout.js observableArray()

    这让我很困惑 这一定是我没看到的小事 我正在尝试加载一个非常简单的observableArray通过 ajax 调用进行淘汰赛 javascript we bind the array to the view model property
  • 如何使用淘汰赛映射插件添加新项目

    我正在尝试一个淘汰制图样本 我想我已经快完成了 我似乎无法向 viewModel foos 添加新的 Foo 谁能看到我在这里错过了什么 var Foo function data var self this self id data id
  • JSON.stringify 使用 Knockout JS 变量的对象

    当前场景 function Employee data var self this variables this Forename ko observable data Forename this Surname ko observable
  • 条件验证不适用于匿名淘汰赛验证规则

    我的视图模型中有以下属性 它们使用淘汰验证 其中之一是自定义验证来检查密码匹配 model Password ko observable extend required message Password is required params
  • Kendo-Knockout:如何使窗口居中

    我正在使用 RPNiemeyer 的剑道淘汰库 我有一个剑道窗口 我在 html 中使用它 div div 我曾经这样将对话框居中 productionStates data kendoWindow center But as center
  • Breeze 和 Knockout 中的验证

    我最近使用 Knockout 和 ASP NET MVC4 将 Breeze 添加到项目中 我真的很喜欢 Breeze 它节省了大量的编码工作 我使用过 Knockout 验证 喜欢它如何验证数据输入时的属性字段文本框以及错误消息的显示方式
  • 使用 Chrome 控制台通过 RequireJS 访问 Knockout ViewModel

    既然我正在使用 RequireJS 如何在 Chrome 控制台中访问 KnockOut ViewModel 变量 在使用 RequireJS 之前 我遵循命名空间模式 将所有内容隐藏在单个全局中 我可以通过在 Chrome 控制台中输入以
  • KnockoutJS - 打印迭代索引作为输入名称

    我正在尝试结合 Spring MVC 创建我的第一个 KnockoutJS 表单视图 ModelAttribute捆绑 数据通过 Ajax 加载并使用 KnockoutJS 填充 通过 KnockoutJS 添加数据 通过 Ajax 和 K
  • 使用自定义绑定处理程序输入文本水印

    我一直在尝试创建一个自定义绑定处理程序 我可以使用它为文本输入字段提供水印行为 By watermark我的意思是 向文本字段添加默认值 这些默认值在焦点时被删除 如果文本字段仍然为空 则在模糊时被替换 我已经设法让它工作 如 jsfidd
  • DurandalJS 路由行为

    我拥有的 试图了解发生了什么以及如何控制它 我对尚未经过身份验证的用户有一个 公共 视图 对经过身份验证的用户有一个 主页 视图 这是我的路线配置 app start then function Replace viewmodels in
  • Knockout :找出哪个可观察触发了计算

    我有一个具有多个可观察值的对象 计算中有没有一种方法可以知道哪些可观察的变化 从而知道哪个可观察触发了计算 先感谢您 马修 如果没有详细说明您想要实现的目标 我将发布此内容 希望它能有所帮助 跟踪更改的一个简单方法是使用 subscribe
  • Knockout 将 css 类绑定到观察到的模型属性

    我想将 divs css 类绑定到视图模型的属性 如下所示 div 但这会产生结果 div class 0 1 2 3 这是视图模型 myViewModel selectedPriority ko observable High Compa
  • 如何在服务器中处理用于发布目的的日期

    我从 ASP NET MVC 获得了这个值 Date 1446393600000 它在 SQL 数据库中的值是 2015 11 02 这是一个date 仅限日期 并将其作为 javascript 对象进行操作 我使用moment js ht
  • 敲除映射导致堆栈溢出

    我正在尝试淘汰赛和映射插件 并想知道为什么这不起作用 我有一个要使用映射扩展加载的视图模型 function todoListViewModel data ko mapping fromJSON data todos TodoItem op
  • 对模板之一的 observableArray 进行排序

    我有以下视图模型 function instance id FirstName extend this id ko observable id FirstName ko observable FirstName 我在 observableA

随机推荐

  • 错误 lnk2005 已在 .obj 中定义

    关于这个错误有很多疑问 但它们只与一个变量相关 test h namespace World enum Objects TERRAIN 1 BOX 2 SPHERE 4 CAPSULE 8 void WorldObjects2 unsign
  • 如何将 SQL 结果集限制为不太常见的项目

    问题 我有一份姓名和地址列表 有些姓名 人 与其他姓名 人 具有相同的地址 街道 邮政编码 城镇 我想选择所有这些名称 其地址出现次数不超过三次 并从其余名称中选择前三个名称 每个名称都指向同一地址 例子 Albert Adr1 Berta
  • 连续单子转变

    在尝试为 ContT monad 转换器建立一些直觉时 我 也许并不奇怪 发现自己很困惑 问题在于 shiftT 操作似乎没有做任何有用的事情 首先是一个如何使用它的简单示例 shiftT famr gt lift do a lt calc
  • 按月分组获取数据集的百分位数

    我有一个 SQL 表 其中包含大量记录 如下所示 Date Score 01 01 2010 4 02 01 2010 6 03 01 2010 10 16 03 2010 2 我将其绘制在图表上 因此我在图表上画了一条漂亮的线 表示随时间
  • 如何使用thymeleaf作为模板引擎和飞碟作为渲染器使用密码保护pdf报告

    PDF 已成功生成 但我想用密码保护它 Flying saucer pdf 文档对我没有帮助 我正在使用这个例子使用thymeleaf flying saucer pdf Spring Boot http www oodlestechnol
  • 使用把手引用 css 和 js 文件的正确方法是什么?

    我目前在我的项目中使用 Express 和车把 这是我第一次使用车把 我不知道如何正确引用我的 css 和 js 文件的位置 我当前的项目结构如下 test root views js some JS files css some css
  • Json.net 反序列化返回一个空对象

    我正在使用下面的代码进行序列化 var json JsonConvert SerializeObject new summary summary summary是类型的自定义对象SplunkDataModel public class Sp
  • Firebase Cloud Functions - 创建 pdf、存储到存储桶并通过邮件发送

    我正在开发一个 Firebase 函数 当新订单添加到实时数据库时会触发该函数 它做的第一件事是创建一个 pdf 并将其通过管道传输到谷歌云存储桶 在存储桶流的 on finish 事件上 下一个函数将启动 该函数应通过电子邮件将管道传输的
  • 如何将通知从网站发送到 Android 应用程序 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我使用一些 javascript 和 php 制作了一个 html 网站 我使用 eclipse 和 java 制作了一个 andro
  • WebSocket - Safari 9 - 标头值中的 UTF-8 序列无效

    我正在创建一个在 Chrome 版本 47 0 2526 106 64 位 中工作的 WebSocket 但在 Safari 版本 9 0 2 11601 3 9 上失败 错误是Invalid UTF 8 sequence in heade
  • Java - 一次双加法/减法的最大精度损失

    是否有可能确定 即使是粗略地 处理两个数据时的最大精度损失是多少 doublejava中的值 加 减 最糟糕的情况可能是两个数字无法精确表示 然后对它们执行运算 结果得到的值也无法精确表示 最坏的情况是all精度可能会丢失 例如 如果结果大
  • 我应该在声明时还是在构造函数中实例化实例变量?

    这两种方法都有什么优点吗 示例1 class A B b new B 示例2 class A B b A b new B 没有什么区别 实例变量初始化实际上是由编译器放入构造函数中的 第一个变体更具可读性 您无法对第一个变体进行异常处理 另
  • 使用reactjs下载文件无法正常工作(使用axios)

    我正在使用以下方法实现 YouTube 视频下载器ytdl核心 https www npmjs com package ytdl core带有 Nodejs 后端和 Reactjs 前端 但是 使用 ytdl core 库 我可以使用此代码
  • 从 Process.StandardOutput 捕获二进制输出

    在 C 在 SuSE 上的 Mono 2 8 下运行的 NET 4 0 中 我想运行外部批处理命令并以二进制形式捕获其输出 我使用的外部工具称为 samtools samtools sourceforge net 它可以从称为 BAM 的索
  • Heroku 推送被拒绝

    我在将主分支推送到 heroku 时遇到问题 我正在使用以下命令 git push heroku master 我遇到的错误 Counting objects 114 done Delta compression using up to 4
  • CoreData fetch() 返回无序的对象

    我有一个具有名称的实体 出于测试目的 我按照最近添加 0 到最旧添加对象的顺序命名它们 当我第一次启动应用程序时 它按顺序加载我的实体 0 1 2 但如果我更改任何实体的名称属性 顺序就会混乱 我使用 numberOfRows tablev
  • PHP 创建图像来显示电子邮件地址?

    使用 PHP 如何创建图像来显示电子邮件地址 以帮助减少垃圾邮件 意思是 如果我想显示 电子邮件受保护 cdn cgi l email protection 在我的网页上 因为爬虫可以轻松找到该文本 我想将电子邮件地址显示为图像 上面写着
  • Xamarin 项目未运行,未找到程序集

    我正在学习 Xamarin 当我尝试创建一个项目并构建它时 它给了我这个错误 无法加载 Xamarin Forms Build Tasks GetTasksAbi 任务 从大会上来看 C Users XXXX nuget packages
  • .NET HttpClient - 远程主机强制关闭现有连接

    我从 ASP NET MVC 控制器调用了以下代码 protected string PostData string url ByteArrayContent content using var client new HttpClient
  • 条件验证不适用于匿名淘汰赛验证规则

    我的视图模型中有以下属性 它们使用淘汰验证 其中之一是自定义验证来检查密码匹配 model Password ko observable extend required message Password is required params