Knockout验证 - 如何显示错误消息

CBl*_*ack 17 knockout.js knockout-validation

我们正在使用Knockout.js和Knockout-validation插件.当用户返回到具有验证错误的页面时,我们希望显示错误消息.有没有人知道是否有可能在没有实际更改约束答案的情况下触发敲除验证?

CBl*_*ack 46

解决方案是调用showAllMessages.如果视图模型具有嵌套的observable,请确保将ko.validation.configure设置为使用深度分组,因为默认值为false.

例:

viewModel.save = function()
{
    var result = ko.validation.group(viewModel, {deep: true});
    if (!viewModel.isValid()) 
    {
        alert("Please fix all errors before preceding");
        result.showAllMessages(true);

        return false;
    }

    //actually save stuff, call ajax, submit form, etc
}
Run Code Online (Sandbox Code Playgroud)

或者,您可以替换!viewModel.isValid()result().length > 0

  • 请注意,validatedObservable调用幕后组并存储在errors属性中,因此无需执行自己的组.`if(!viewModel.isValid()){viewModel.errors.showAllMessages(); }` (10认同)
  • 除非你需要深层选项,否则你必须做自己的小组...... (4认同)