GitHub'dan Knockoutjs Doğrulama eklentisini kullanmaya çalışıyorum. Çoğu sadece iyi çalışıyor gibi görünüyor ama genişletilmiş doğrulama mustEqual (parola/onaylama parolası) kullanmaya çalıştığınızda, hiçbir şey yapmıyor gibi görünüyor. Neyi kaçırıyorum?Knockoutjs doğrulamaları areSame veya mustMatch örnekleri
Gelecekte kullanım için bu genişletici tekniğini öğrenmek isterim.
(aynı zamanda tüm bu html ve javascript AJAX çağrı yoluyla sayfaya yüklenen olsun. Bunun bir ilgisi varsa.)
Benim javascript
function UserAccount(data) {
var self = this;
self.Password = ko.observable(data.Password).extend({ required: true, minlength: 6, message: "Password is required", maxLength: 12 });
self.Firstname = ko.observable(data.Firstname).extend({ required: true, minlength: 6, message: "Firstname is required", maxLength: 40 });
self.Lastname = ko.observable(data.Lastname).extend({ required: true, minlength: 6, message: "Lastname is required", maxLength: 40 });
self.Email = ko.observable(data.Email).extend({ required: true, minlength: 6, message: "Email is required", email: true, maxLength: 90 });
self.ConfirmPassword = ko.observable().extend({ mustEqual: self.Password()});
...........................Other Code............
}
ko.validation.rules['mustEqual'] = {
validator: function (val, otherVal) {
alert("Hello");
return val === otherVal;
},
message: 'The field must equal {0}'
};
$(document).ready(function() {
ko.applyBindings(new UserAccount(initdata), $("#UserAccount").get(0));
ko.validation.registerExtenders();
});
Bu işe yaradı. Aslında ilk başta issame işleviyle çalışıyordum ama işe yaramadı. Daha basit göründüğünden, mustEqual'e geçtim. Ko.validation ... ve ko.applyBindings her zaman bir $ (document) .ready olmalıdır? – DanScan
DOM yüklendikten sonra 'ko.applyBindings' çağrılmalıdır, böylece $ (document) .ready' koymak için iyi bir yer. Tüm özel doğrulayıcılarınızı tanımladığınızdan sonra “ko.validation.registerExtenders();”) çağrılmalıdır. Yani doğrudan ko.validation.rules ['areSame'] = {} 'den sonra çağrılabilir, bu yüzden '$ (document) .ready' olarak adlandırmak gerekli değildir. – nemesv
Sayfa ilk yüklendiğinde doğrulama işleminin nasıl yapılmasını nasıl durdurabilirim? – DanScan