1

ノックアウト検証を使用してビュー モデルを検証し、カスタム テンプレートを使用してフィールドの横に確認メッセージまたはエラー メッセージを表示しています。問題は、必須としてマークされていないフィールドに確認メッセージが追加されていることです。テンプレートでは isModified と isValid をチェックしますが、フィールドが必須であることをチェックして、必須フィールドの確認のみを表示できるようにする方法はありますか?

http://jsfiddle.net/uSs3R/

<script type="text/html" id="myCustomTemplate">
    <span data-bind="if: field.isModified() && !field.isValid(), 
                     attr: { title: field.error }"><i class="icon-exclamation-sign"></i></span>
    <span data-bind="if: field.isModified() && field.isValid()"><i class="icon-ok green"></i></span>
</script>
4

1 に答える 1

1

この問題には複数の解決策があります。

呼び出すときに、検証できない可能性のあるプロパティを含めないでくださいko.validation.group

したがって、書く代わりに:

self.errors = ko.validation.group(self);

検証したいプロパティをリストするだけです:

self.errors = ko.validation.group([self.Value2]);

または、カスタム メッセージ テンプレートに追加のチェックを追加して、 を検索し、field.rulesルールが含まれているかどうかをチェックすることもできます。

<script type="text/html" id="myCustomTemplate">
    <span data-bind="if: field.rules().length > 0 && field.isModified() &&      
                      !field.isValid(), attr: { title: field.error }">
           <i class="icon-exclamation-sign"></i>
     </span>
     <span data-bind="if: field.rules().length > 0 && field.isModified() && 
                      field.isValid()">
           <i class="icon-ok green"></i>
     </span>
</script>

JSFiddleのデモ。

于 2013-10-18T18:53:52.423 に答える