knockout.js - Disable Input based on Other Inputs Knockoutjs -
knockout.js - Disable Input based on Other Inputs Knockoutjs -
i trying setup knockout observable disable input, if 2 other inputs not both between 1 , 30. right when run code in jsfiddle, input disabled. unfortunately, never able reenable input. here code on jsfiddle help.
html
<!-- *view* - html markup defines appearance of ui --> <p>alcohol days: <input data-bind="value: alcoholdays" /> </p> <p>alcohol 5+ days: <input data-bind="value: alcoholfiveplusdays" /> </p> <p>alcohol 4- days: <input data-bind="value: alcoholfourlessdays" /> </p> <p>drug days: <input data-bind="value: drugdays" /> </p> <p>both days: <input data-bind="value: bothdays, enable: enablebothdays" /> </p> <p>enable both days: <strong data-bind="text: enablebothdays"></strong> </p> <p>alcohol days: <strong data-bind="text: alcoholdays"></strong> </p> <p>drug days: <strong data-bind="text: drugdays"></strong> </p> <button data-bind="click: capitalizelastname">go caps</button>
javascript
// simple *viewmodel* - javascript defines info , behavior of ui function appviewmodel() { var self = this; self.alcoholdays = ko.observable(""); self.alcoholfiveplusdays = ko.observable(""); self.alcoholfourlessdays = ko.observable(""); self.drugdays = ko.observable(""); self.bothdays = ko.observable(""); self.enablebothdays = ko.computed(function () { if ((parseint(self.alcoholdays) > 0 && parseint(self.alcoholdays) <= 30) && (parseint(self.drugdays) > 0 && parseint(self.drugdays) <= 30)) { homecoming true; } else { homecoming false; } }, self); } // activates knockout.js ko.applybindings(new appviewmodel());
wade
hi check fiddle i fixed problem .
1.) cleared binding error in fiddle
2.) re-structured computed observable
self.enablebothdays = ko.computed({ read: function() { alert('in'); var alcdays = number(self.alcoholdays()); var drgdays = number(self.drugdays()); alert(alcdays+','+drgdays); var temp = false; if (alcdays > 0 && alcdays <= 30 && drgdays > 0 && drgdays <= 30) { temp = true; } else { temp = false; } alert(temp); homecoming temp; } });
3.) changed enable condition
fiddle..
mark answer
knockout.js
Comments
Post a Comment