1

ノックアウト.jsとノックアウト.検証プラグインを使用しています。の 3 つの入力フィールドを含む検索フォームがありますName, Date and Country。検索を続行する前に、ユーザーが少なくとも 1 つのフィールドに入力する必要があることを確認したいと思います。このためrequired、3 つのフィールドすべてにネイティブ検証ルールを適用しました。これが私のコードです:

function SearchModel() {
    var self = this;

    self.Name = ko.observable().extend({ required: true });
    self.Date = ko.observable().extend({ required: true });
    self.Country = ko.observable().extend({ required: true });
    self.Errors = ko.validation.group(self);
}

検証が失敗した場合にすべての検証メッセージを含む Errors プロパティも作成しました。ユーザーが検索フォームを送信し、検証が失敗した場合、入力フィールドの下にすべてのエラーメッセージを表示したくない代わりに、フォームの上部に「少なくとも1つのフィルターを入力する必要があります」のような単一のメッセージを表示したい検索用」 .

私の質問は、すべてのメッセージを非表示にして、フォームの上部に単一のメッセージを表示するにはどうすればよいですか? または、私がやろうとしているのと同じことを行うための他の良い方法があれば、教えてください。

4

1 に答える 1

1

フィールドを必須に設定する代わりに、条件を使用して、 1 つの属性が指定されているかどうかを判断します。

function SearchModel() {
    var self = this;

    self.Name = ko.observable();
    self.Date = ko.observable();
    self.Country = ko.observable();
    self.Errors = ko.validation.group(self);
    self.needsMore = ko.computed(function () {
      return !(self.Name() || 
        self.Date() ||
        self.Country);
    });
}
于 2012-11-10T08:53:22.380 に答える