Javascript 对对象应用敲除验证
我一直在想我应该如何将淘汰验证应用到我的视图模型中。在我找到的所有示例中,验证都应用于视图模型中的各个属性。但是,我想知道是否可以对java脚本对象中的单个属性应用验证?以下是我的视图模型代码:Javascript 对对象应用敲除验证,javascript,validation,knockout.js,Javascript,Validation,Knockout.js,我一直在想我应该如何将淘汰验证应用到我的视图模型中。在我找到的所有示例中,验证都应用于视图模型中的各个属性。但是,我想知道是否可以对java脚本对象中的单个属性应用验证?以下是我的视图模型代码: $(document).ready(function () { BindViewModel(); }); function ManageCustomerViewModel() { var self = this; self.searchResults = ko.mappin
$(document).ready(function () {
BindViewModel();
});
function ManageCustomerViewModel() {
var self = this;
self.searchResults = ko.mapping.fromJS([]);
self.customerCount = ko.observable();
self.Customer = ko.observable();
self.SearchOnKey = function (data, event) {
if (event.keyCode == 13 || event.keyCode == 9) {
self.CustomerSearch(data);
}
else {
return true;
}
};
self.AddCustomer = function () {
var cust = {
Id: 0,
FirstName: "",
LastName: "",
EmailAddress: "",
AlternatePhone: "",
BillingAddress: "",
BillingCity: "",
BillingState: "",
BillingZip: "",
PrimaryPhone: "",
ShippingAddress: "",
ShippingCity: "",
ShippingState: "",
ShippingZip: ""
}
self.Customer(cust);
};
self.UpdateCustomer = function () {
ShowLoading();
if (self.Customer().Id > 0) {
$.ajax("../api/CustomerAPI/UpdateCustomer", {
data: ko.mapping.toJSON(self.Customer),
type: "post",
dataType: "json",
contentType: "application/json; charset=utf-8",
success: function (e) {
HideLoading();
$('#Modal').modal('hide');
}
}).fail(function () { HideLoading() });
}
else {
$.ajax("../api/CustomerAPI/InsertNewCustomer", {
data: ko.mapping.toJSON(self.Customer),
type: "post",
dataType: "json",
contentType: "application/json; charset=utf-8",
success: function (e) {
HideLoading();
$('#Modal').modal('hide');
}
}).fail(function () { HideLoading() });
}
};
self.GetCustomerDetails = function (c) {
ShowLoading();
$.getJSON("../api/CustomerAPI/GetCustomerByID", { id: c.Id }, function (cust) {
self.Customer(cust);
HideLoading();
}).fail(function () { HideLoading() });
}
self.CustomerSearch = function (data) {
var first = $("#txtFirstName").val();
var last = $("#txtLastName").val();
var email = $("#txtEmail").val();
first = first.trim();
last = last.trim();
email = email.trim();
if (first == "" && last == "" & email == "") {
alert("Please enter at least one search value");
}
else {
ShowLoading();
$.getJSON("../api/CustomerAPI/GetCustomerSearchResults", { lastname: last, firstname: first, email: email }, function (allData) {
ko.mapping.fromJS(allData, self.searchResults);
self.customerCount(self.searchResults().length);
HideLoading();
}).fail(function () { HideLoading() });
}
};
}
function BindViewModel() {
ko.applyBindings(new ManageCustomerViewModel());
};
如您所见,我使用Customer对象来回传递数据。我想为Customer的属性添加验证。这是可行的还是我做错了?您可以将验证分配给对象中的单个观察值。如果您有一个可行的解决方案,并且正在解决如何改进代码的反馈,您可能会感兴趣,但请务必阅读他们的常见问题解答。您不能将验证添加到非knokcout观察值的属性。ko.validation方法“extend”只能与一个可观察对象链接。@wayneelley你能提供一个例子吗?就像我的一篇文章中的小提琴一样