मैं गिटहब से नॉकआउटज सत्यापन जोड़ने का प्रयास करने की कोशिश कर रहा हूं। ऐसा लगता है कि इसमें से अधिकांश ठीक काम करते हैं लेकिन जब मैं विस्तारित सत्यापन का उपयोग करने की कोशिश करता हूं, तो एक्सेल (पासवर्ड/पुष्टिकरण पासवर्ड) ऐसा कुछ नहीं लगता है। मैं क्या खो रहा हूँ?के लिए नॉकआउटज सत्यापन या समान उदाहरण उदाहरण
मैं भविष्य में उपयोग के लिए इस विस्तारक तकनीक को सीखना चाहता हूं।
(भी इस पूरे HTML और जावास्क्रिप्ट AJAX कॉल के माध्यम से पेज लोड मिलता है। यह है कि अगर यह से कोई लेना देना नहीं है।)
मेरे जावास्क्रिप्ट
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();
});
यह काम किया। मैं वास्तव में पहले समान समारोह के साथ काम कर रहा था लेकिन इसे काम नहीं कर सका। मैं mustEqual पर स्विच किया क्योंकि यह आसान लग रहा था। क्या ko.validation ... और ko.apply बाइंडिंग हमेशा $ (दस्तावेज़) में होनी चाहिए। पहले से ही? – DanScan
आपके डॉम लोड होने के बाद 'ko.applyBindings' को कॉल किया जाना चाहिए ताकि' $ (दस्तावेज़) .ready' इसे रखने के लिए एक अच्छी जगह हो। 'Ko.validation.registerExtenders(); 'आपके सभी कस्टम सत्यापनकर्ताओं को परिभाषित करने के बाद कहा जाना चाहिए। इसलिए इसे 'ko.validation.rules [' areSame '] = {} 'के बाद सीधे कहा जा सकता है, इसलिए इसे' $ (दस्तावेज़) .ready' में कॉल करना आवश्यक नहीं है। – nemesv
पृष्ठ लोड होने पर मैं फायरिंग से सत्यापन को कैसे रोकूं? – DanScan