我使用淘汰赛JS验证与http://ericmbarnard.github.com/Knockout-Validation/验证引擎开始,我并不清楚如何做到以下几点:如何?与淘汰赛JS验证
1)说我想设置一个特定的领域需要基于一个条件。我怎么做? 例如
this.Username = ko.observable()。extend({required:true}); //只有当this.UserType = 2等时,才能使所需的= true。
2)我已验证消息正在被验证的字段旁边。我只想在该字段旁边出现一个'*',并将错误消息显示在页面底部的validationsummary字段中。所有验证错误都应显示在那里。怎么做?
3)表单提交后才能避免,直到表单验证通过。现在,我收到验证错误消息,仍然提交表单。所以我想我做错了什么。以下是我的代码:
$(document).ready(function() {
var model;
// enable validation
ko.validation.init();
$.ajax({
type: "POST",
url: SERVER_PATH + '/jqueryservice/DataAccessService.asmx/GetData',
async: false,
data: "{ }",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (result, status) {
model = new ViewModel(result);
ko.applyBindings(model);
},
error: GetDataError
});
$('#submit').click(function() {
var data = ko.toJS(model);
delete data.Vehicles;
delete data.CopyWeeks;
delete data.SetupTotal;
delete data.CloseTotal;
var mappedItems = ko.utils.arrayMap(data.DailyItemList, function (item) {
delete item.Add;
delete item.Delete;
return item;
});
data.DailyItemList = mappedItems;
$.ajax({
type: "POST",
url: SERVER_PATH + '/jqueryservice/DataAccessService.asmx/ProcessData',
async: false,
data: ko.toJSON(data),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (result, stat) {
alert(success);
return false;
},
error: function (e) {
alert(e);
}
});
});
});
在此先感谢您的帮助。
编辑: 我已经看到了,我可以设置验证配置如下: ko.validation.configure({ decorateElement:假的, errorMessageClass: 'ERRORMSG', insertMessages:假的, parseInputAttributes:真, messageTemplate:'sErrorMsg' }); ko.validation.init();
,但我不知道我该怎么定义我的错误信息模板 'sErrorMsg'
好的,我得到了1)和3)的工作。非常感谢。但2对我来说依然是个谜。我浏览了您链接的Github文档,但无法弄清楚如何使用它。你能举个例子吗?另外,yourViewModel.Errors.showAllMessages()会做什么?我无法得到这个工作。 – devC
你能帮我解决这个问题吗? – devC
yaa当然,请检查更新的答案和小提琴,并让我知道是否有任何进一步的疑问。 – gaurav