JSFiddle - React, Tailwind, and code Playground
by pardahlman
HTML
<script src="http://code.jquery.com/jquery-2.0.3.min.js"></script>
Feedback 01:
<input type="text" data-bind='value:Feedback1, valueUpdate: "afterkeydown"' />
<br/>
Feedback 02:
<input type="text" data-bind='value:Feedback2, valueUpdate: "afterkeydown"' />
<br/>
Feedback 44:
<input type="text" data-bind='value:Feedback44, valueUpdate: "afterkeydown"' />
<br/>
<hr/>
<button data-bind="enable:AllQuestionsAnswered">Submit Evaluation</button>
<br/>
<small> This relates to <a href="http://stackoverflow.com/questions/21005209/how-to-make-sure-that-all-the-observables-are-not-undefined">StackOverflow</a> </small>
JavaScript
var jsFiddlerDeniedProps = ["parent", "top", "frameElement", "content"];
var TestModel = function () {
self.Feedback1 = ko.observable('Some Answer');
self.Feedback2 = ko.observable('Some Answer');
self.Feedback44 = ko.observable();
self.AllQuestionsAnswered = ko.computed(function () {
for (p in self) {
// 'propAccepted' is here to fix quirk in jsfiddle, can be removed locally
var propAccepted = jsFiddlerDeniedProps.indexOf(p) == -1;
if (propAccepted && ko.isObservable(self[p])) {
var isFeedback = p.indexOf('Feedback') != -1;
if (!isFeedback) {
continue;
}
var valueOfObservable = self[p]();
if (!valueOfObservable) {
return false;
}
}
}
return true;
});
};
var vm = new TestModel();
ko.applyBindings(vm);