-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

As mentioned in the comments the point of KO is to separate your data from your view. By using the jquery selectors to update the value of inputs you are essentially using KO wrong. In very few circumstances is plain jquery needed.

The correct approach would be to update the observable itself.

vm.checksum("md5 code");

Then you can eliminate the $("#txtCheckSum").val/trigger all together.

于 2012-05-24T15:22:36.330 回答
0

我找到了解决方案

在 Javascript 代码中,我放了这个:

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

我的视图模型接受了这些更改。

于 2012-05-24T10:50:33.430 回答