2012-07-31 10 views
18

मैं सशर्त बयान के साथ KnockoutValidation का उपयोग करने का प्रयास कर रहा हूं। नीचे कोड देखें:नॉकआउट वैलिडेशन और सशर्त आवश्यक नियम

self.transactionType = ko.observable('Option1'); 

self.ConditionalField = ko.observable().extend({ 
    required: true, 
    onlyIf: self.transactionType = ="Option2" 
}); 

दुर्भाग्य से यह काम नहीं करता है। मैं ConditionalField केवल transactionType मानना ​​चाहता हूं यदि 'Option2' है।

knockout.validation.js के साथ सशर्त सत्यापन का उपयोग करने का सबसे अच्छा तरीका क्या है?

उत्तर

37

मैंने इसे हल किया है।

सबसे पहले मैंने घोषित करने की गलती की जब मैंने conditionalfield परिभाषित किया था। अंत कोड जो काम करता है, इस तरह दिखता है:

self.transactionType = ko.observable("Option1"); 

self.conditionalField = ko.observable().extend({ 
    required: { 
    onlyIf: function() { 
     return self.transactionType() == "Option2"; 
    } 
    } 
}); 
+8

ठीक है, ऐसा कहा गया है कि थॉमस एडिसन ने पहले व्यावसायिक रूप से व्यावहारिक गरमागरम प्रकाश का आविष्कार करने से पहले 3000 विफल प्रयास किए थे। http://en.wikipedia.org/wiki/Thomas_Edison#cite_note-28, लेकिन मुझे आपका जवाब उतना ही रोशनी वाला लगता है ... धन्यवाद और + 1 –

+2

अफसोस की बात यह है कि अगर सामान कहीं भी दस्तावेज नहीं किया गया है। धन्यवाद! –

+2

[केवल अगर दस्तावेज़ीकरण] (https://github.com/Knockout-Contrib/Knockout- Valalidation/wiki/Conditional-Validation-with-onlyIf-parameter) – Homer

संबंधित मुद्दे