2012-07-31 28 views
18

Tôi đang cố gắng sử dụng KnockoutValidation với các câu lệnh có điều kiện. Xem mã bên dưới:KnockoutValidation và quy tắc bắt buộc có điều kiện

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

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

Thật không may điều này không hiệu quả. Tôi chỉ muốn có ConditionalField nếu transactionType có giá trị 'Option2'.

Cách tốt nhất để sử dụng xác thực có điều kiện với knockout.validation.js là gì?

Trả lời

37

Tôi đã giải quyết nó.

Trước hết, tôi đã phạm sai lầm khi khai báo số transactiontype sau khi tôi đã xác định conditionalfield. Mã kết thúc hoạt động trông giống như sau:

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

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

Vâng, người ta nói rằng Thomas Edison đã nỗ lực 3000 lần trước khi phát minh ra ánh sáng sợi đốt thương mại đầu tiên. http://en.wikipedia.org/wiki/Thomas_Edison#cite_note-28, nhưng tôi tìm thấy câu trả lời của bạn để được chỉ là chiếu sáng ... cảm ơn & + 1 –

+2

Đáng buồn thay này onlyIf công cụ không được tài liệu bất cứ nơi nào. Cảm ơn! –

+2

[onlyNếu tài liệu] (https://github.com/Knockout-Contrib/Knockout-Validation/wiki/Conditional-Validation-with-onlyIf-parameter) – Homer

Các vấn đề liên quan