我使用淘汰賽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