1

メッセージ フィールドと、peopleそれぞれに色のドロップダウン リストとデフォルトの選択を伴う順序付けられていないリストにバインドされているコレクションがあります。

メッセージフィールドの検証が機能し、テキストを消去するとエラーが表示され、エラーカウントが増加します。ただし、ドロップダウン エントリの 1 つを [Choose..] に変更すると (実質的にオプションの選択を解除すると)、「このフィールドは必須です」というメッセージが正しく表示されますが、errorsオブジェクトは更新されていないように見えます。それは明らかに、それがコレクションであるという事実と何か関係があるに違いありませんか? 送信ボタンを押すとき、またはスパン データ バインディングを表示するときの意味を確認してください。

また、動的に追加された行を有効にするための検証も必要です。そのため、「別の行を追加」を押すと、エラー オブジェクトも増加する必要があります。

http://jsfiddle.net/goneale/TJGS3/

誰かがこれを見て、私を助けてくれませんか?

4

1 に答える 1

1

更新: 検証ライブラリの最新バージョンでは、 live: true オプションを使用して、observableArrays をリッスンすることができます。

grouping: { deep: true, observable: true, live: true }

http://jsfiddle.net/fYrbt/29/

古い答え:

残念ながら、新しいアイテムが挿入されたときにグループが再評価されることはありません。配列をサブスクライブし、明示的に行います。

this.items.subscribe(function() {
     this.errors = ko.validation.group(this);
     this.errors.showAllMessages();
}, this);

http://jsfiddle.net/fYrbt/

于 2013-04-26T06:56:38.103 に答える