2012-08-23 20 views
15

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

答えて

42

解決策は、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 
} 

また、あなたはvalidatedObservableエラープロパティでシーンや店舗の背後にあるグループを呼び出すことresult().length > 0

+9

注意して!viewModel.isValid()を置き換えることができますので、あなた自身のグループを実行する必要はありません。 'if(!viewModel.isValid()){ viewModel.errors.showAllMessages(); } ' –

+4

あなたが深いオプションを必要としない限り、あなた自身のグループをする必要があります... –

+0

ありがとうございます。これは非常に役に立ちました。 – Quickhorn

関連する問題