2012-12-05 7 views
13

私はKnockout.jsでノックアウト検証を使用してページをセットアップしました。ノックアウト検証でエラーをクリアしました

ページの読み込み中に、選択ボックスに別のプラグインを配置して変更を実行し、検証を実行します。 JSを使用してそのエラーをクリアできるようにする必要があるので、新しく見えるUIから始めてフォームの投稿やボックスの変更を選択することができます。

Knockout-Validationでエラーをクリアできるものが見つかりません。

答えて

4

このプルリクエストを実装して回答が見つかりました。

https://github.com/Knockout-Contrib/Knockout-Validation/pull/184

私が必要とする機能を提供します。すでにノックアウト検証に実装されているものは次の

+0

を参照してください。嫌がらせはしませんが、私はこの回答がこの機能を必要とするときに行動として取るべきではないと感じています。私のdownvote whence。私はあなたの質問をupvoted、その良いもの! :) –

25

おそらくより良い方法は、あなたがすべての検証プロパティを通じて、単純にループをリセットして呼び出すために全体のビューモデルを持っている場合property.isModified(false);

を言うことであるisModified(false)

参照してください。

+0

ありがとうございます。また、これは他人には明白かもしれませんが、フィールドをクリアした後に行う必要があります。例:_thisComment( ''); _this.Comment.isModified(false)。簡単な検証リセット。 –

+1

これはまさに 'showAllMessages(false)'が内部で行うことです。@yoannによって返答されます。 –

24

後期の回答に役立ちますが、誰がそれを必要とする場合comment from Eric Barnard here

希望:

// assuming the ko.observable on the checkbox is called propBoolean 
var propBooleanlValid = ko.validation.group(self.propBoolean, { deep: false }); 
propBooleanlValid .showAllMessages(false); 

次の検証までメッセージを非表示にします。

+2

これは素晴らしい動作です、ありがとうございます!これはko検証文書に記載されています。 – Ross

+2

注:あなたの設定に 'messagesOnModified:true'があることを確認してください。それが偽であれば、メッセージは常に –

+0

と表示されます。これは3つの中で最高の気分です –

関連する問題