当我调用“viewModel.errors()。length”时会触发False Errors消息

时间:2012-05-23 13:57:56

标签: javascript validation jquery-validate knockout.js knockout-2.0

我有一个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”时,我有一个错误,就像是空的。

帮助?

2 个答案:

答案 0 :(得分:1)

正如评论中所提到的,KO的目的是将您的数据与您的观点分开。通过使用jquery选择器更新输入值,您实际上使用KO错误。在极少数情况下需要普通的jquery。

正确的方法是更新observable本身。

vm.checksum("md5 code");

然后你可以一起消除$(“#txtCheckSum”)。val / trigger。

答案 1 :(得分:0)

我找到了解决方案

在Javascript代码中,我把它放在:

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

我的viewmodel接受了这些变化。