1

knockout.js(およびknockout-validation)での作業私はこれを持っています:

self.nickname = ko.observable("").extend({
    required: true,
    minLength: 3
});

<input type="text" data-bind="value: nickname" class="short" maxlength="30" />
<div class="formRow rowErrorMsg" data-bind="visible: nickname.isValid() == false"><span class="staticImages staticImagesError"></span> <?php text("Enter a valid username") ?></div>

ただし、問題は、「ニックネーム」が無効な場合、入力コントロールの横にテキストが表示されることです。エラーメッセージのあるDIVが表示され始め、正常に動作します。

私はこれを行う必要があります:

  1. 「ニックネーム」が無効な場合は、カスタムメッセージと形式でDIVを表示するだけです。
  2. ページが読み込まれると、DIVは非表示のままにする必要があります。
4

1 に答える 1

11

エラーメッセージを表示しないようにノックアウト検証を設定する必要があります。2つの方法があります。

1つ目は、バインディングを介したものです。

<div data-bind='validationOptions: { insertMessages: false }'>
    <input type="text" data-bind="value: nickname" class="short" maxlength="30" />
    <div class="formRow rowErrorMsg" data-bind="visible: nickname.isValid() == false">
</div>

2つ目は、コードを介したものです。

  • ko.validation.init({ insertMessages: false });関数を使用する
  • ko.applyBindingsWithValidation(viewModel, rootNode, { insertMessages: false });関数**contextualを使用します

すべての構成オプションの説明は、https ://github.com/ericmbarnard/Knockout-Validation/wiki/Configurationにあります。

検証する必要のあるフィールドが多数ある場合は、すべてのerrorMessage divを手動で作成する代わりに、messageTemplateテンプレートを使用できます。

于 2013-01-30T06:28:05.063 に答える