-1

私はViewModelを持っていて、それをericmbarnard/Knockout-Validationで使用しています。その中に私はこのフィールドを持っています:

self.checksum = ko.observable().extend({required: {message: " * Required"}});

私のhtmlでは、これは:

<input type="text" id="txtCheckSum" name="txtCheckSum" data-bind="value: checksum"/>

そして、javascriptコードで「入力ファイル」の値を追加します。このJavaScriptコードでは、md5ファイルを計算してから、フィールドtxtCheckSumに入力します。しかし、残念ながら、これは私のViewModelを自動的に埋めることはありません。

したがって、チェックを「viewModel.errors()。length == 0」と呼ぶと、空のようなエラーが発生します。

ヘルプ?

4

2 に答える 2

1

コメントで述べたように、KOのポイントはデータをビューから分離することです。jqueryセレクターを使用して入力の値を更新することにより、本質的にKOを間違って使用しています。ごくわずかな状況では、プレーンなjqueryが必要です。

正しいアプローチは、オブザーバブル自体を更新することです。

vm.checksum("md5 code");

次に、$( "#txtCheckSum")。val/triggerをすべて一緒に削除できます。

于 2012-05-24T15:22:36.330 に答える
0

私は解決策を見つけました

Javascriptコードで、私はこれを置きます:

    $("#txtCheckSum").val('md5 code');
    $('#txtCheckSum').trigger('change');

そして、私のビューモデルは変更を受け入れました。

于 2012-05-24T10:50:33.430 に答える