我可以在敲除验证中手动添加错误消息吗?

时间:2012-09-19 08:33:21

标签: knockout.js asp.net-mvc-4 knockout-validation

我正在使用knockout.js并使用 MVC 4 进行淘汰验证。 我可以通过敲除验证来执行客户端验证。 但是我需要确保发布到我的控制器的任何视图模型都是有效的。 因此,我手动验证我的视图模型服务器端并返回序列化为JSON的模型状态(同事编写了一个简单的函数来执行此操作)。 我的问题是,我想了解如何使用knockout-validation来使用JSON序列化模型状态来输出错误。

那么有没有办法在淘汰验证中手动添加错误和消息?

2 个答案:

答案 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);