在逐步向导中重置淘汰验证中的错误
Reset errors in Knockout validation in step-by-step wizard
我已经使用敲除和模板绑定创建了一个循序渐进的向导,现在我想强制用户在进入下一页之前完成每个页面,我的意思是敲除验证必须有效。"下一步"按钮在视图模型上没有错误时启用,并且在执行向导时运行良好,但当您进入一个步骤并按上一步时会出现问题。即使在返回时,错误也会保持"活动"状态,因此第1页上的下一个按钮将被禁用,因为第2页无效。
我设置了一把小提琴:http://jsfiddle.net/1uo8rtw2/1/
- 在名字框里写些什么
- 按下一步
- 按上一个
- 现在您可以看到"下一步"按钮已禁用
假设问题出现在以下代码中:
self.errors = ko.validation.group(self.viewModel);
self.PrevIsEnabled = ko.observable(false);
self.NextIsEnabled = ko.computed(function() {
return self.errors().length == 0 && self.SelectedTemplate() != "Age";
});
有没有任何方法可以在返回时重置错误计数,并强制淘汰验证以重新验证当前模板?
self.errors
包含所有字段的错误。
您应该只检查当前模板字段的有效性:
self.NextIsEnabled = ko.computed(function() {
var selectedTemplate = self.SelectedTemplate();
return selectedTemplate != "Age"
&& self.viewModel[selectedTemplate].isValid();
}
当然,如果模板中有多个字段,则应该检查所有字段的有效性。
我在github上偶然发现了这个pull请求,所以我所要做的就是订阅SelectedTemplate
并调用
self.errors.clearAllErrors();
它是有效的。
我无法让我更新的JSFiddle工作,因为我无法实现新功能,但这是一切的基础http://jsfiddle.net/1uo8rtw2/2/
相关文章:
- 消息显示之外的淘汰验证
- 淘汰jQuery验证绑定处理程序
- 淘汰验证限制
- 淘汰异步验证 IE9
- 淘汰验证在列表中是唯一的
- 联系表单javascript验证被淘汰了
- 淘汰日期验证工作不正常
- 淘汰计算和输入验证
- 在逐步向导中重置淘汰验证中的错误
- 淘汰验证用户定义的规则
- 淘汰验证和Qtip
- 选择元素的淘汰验证在页面加载时出现
- 淘汰验证问题
- 无法使用淘汰验证验证自定义组
- 如何为淘汰验证配置号码定位
- 为什么我的字符串值可以通过淘汰验证,而整数值却不能
- 对嵌套视图模型进行淘汰验证
- 在用户输入无效值后显示验证消息,然后将焦点放在keyup上,使用淘汰验证
- 淘汰验证自定义消息模板的问题
- 淘汰-验证显示相同的错误信息两次