web-dev-qa-db-ja.com

ノックアウト検証-エラーメッセージを表示する方法

Knockout.jsとKnockout-validationプラグインを使用しています。ユーザーが検証エラーのあるページに戻ったときに、エラーメッセージを表示します。実際にバインドされた回答を変更せずにノックアウト検証をトリガーできるかどうか誰かが知っていますか?

17
CBlack

解決策は、showAllMessagesを呼び出すことです。ビューモデルにオブザーバブルがネストされている場合は、デフォルト値がfalseであるため、ディープグループ化を使用するようにko.validation.configureを設定してください。

例:

_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
}
_

または、!viewModel.isValid()result().length > 0に置き換えることもできます

46
CBlack