我正在使用MVC、Knockout和Knockout Validation来验证我的视图模型。
我遇到了一个问题,就是在加载时视图模型的属性验证会立即触发。换句话说,在用户尝试更改值之前,“此字段为必填项”就会出现在输入框旁边。
这个问题特别出现在下拉控件(select)上。
我猜想这是我在JavaScript代码的其他部分无意中更改、访问或改变可观察对象造成的问题。但我不知道如何追踪这个问题。
有没有一种方法可以订阅或跟踪Knockout Validation中导致验证触发的事件?我只需要知道为什么会以这种方式触发。我相当自信isValid()函数的值始终为false。
以下是在页面加载时未修改的HTML示例:
<select class="highlightable validationElement" name="obsstate" data-bind="value: standardAnswers.ans106_1.value" required="true">
<option value="">-- Select -- </option>
<option value="AK">AK</option>
<option value="AL">AL</option>
etc...
</select>
ko.validation.group(viewModel()).showAllMessages(false);
- Jonathan Strate