我正在使用knockout.js
并使用 MVC 4 进行淘汰验证。
我可以通过敲除验证来执行客户端验证。
但是我需要确保发布到我的控制器的任何视图模型都是有效的。
因此,我手动验证我的视图模型服务器端并返回序列化为JSON的模型状态(同事编写了一个简单的函数来执行此操作)。
我的问题是,我想了解如何使用knockout-validation来使用JSON序列化模型状态来输出错误。
那么有没有办法在淘汰验证中手动添加错误和消息?
答案 0 :(得分:15)
最新的淘汰赛验证版本增加了以下内容:
//manually set error state
observable.setError = function (error) {
observable.error = error;
observable.__valid__(false);
};
//manually clear error state
observable.clearError = function () {
observable.error = null;
observable.__valid__(true);
}
所以你可以使用它们来手动向你的observable添加错误,但是像graeme链接的另一个问题那样,没有内置的方法来映射它们。
之前我所做的只是在表单下方/上方显示模型状态错误以显示服务器端验证错误,并且在输入类型错误旁边有ko验证处理所有客户端。比提出复杂的映射方案容易得多,特别是如果你有复杂的表单数据。
答案 1 :(得分:12)
除了凯文所说的我发现我需要拨打isModified
以使消息真正显示。我想这是因为我更改了消息出现时的默认设置。
observable.setError('Your password is incorrect');
observable.isModified(true);