knockout.js - KnockoutJS Changes Model to Controller -
i have dropdownbox binded videmodel foreach
<td> <input class='required' type="text" data-bind="value: muhasebekodu" id="muhasebekodu" /></td> <td> <select data-bind="options: gidertipleri, value: selectedoptionvalue" onchange="setcodefield(this.value);" id="muhcodes" name="muhcodess"></select></td>
and model this
var self = null; var viewmodel = null; $(document).ready(function () { var giderlers = json.parse(document.getelementbyid('contentplaceholder1_hdnoutgoingtypes').value); var selectedgider = document.getelementbyid('contentplaceholder1_hdnoutgoingtypesselected').value; var odemetipleri = json.parse(document.getelementbyid('contentplaceholder1_hdnfirmpaymenttypes').value); var selectedodemetipi = document.getelementbyid('contentplaceholder1_hdnfirmpaymenttypesselected').value; var giftmodel = function (gifts) { self = this; self.gifts = ko.observablearray(gifts); self.addgift = function () { self.gifts.push({ muhasebekodu: ko.observable().extend({ notify: 'always' }), gidertipleri: giderlers, selectedoptionvalue: ko.observable(selectedgider), faturano: "", matrah: "", kdv: "", geneltoplam: "", kdvtipleri: ["0", "1", "8", "18"], selectedokdvptionvalue: ko.observable("0"), odemeseklitipleri: odemetipleri, selectedoostptionvalue: ko.observable(selectedodemetipi), aciklama: "", }); }; self.removegift = function (gift) { self.gifts.remove(gift); }; self.save = function (form) { alert("could transmit server: " + ko.utils.stringifyjson(self.gifts)); // transmit server regular form post, write this: ko.utils.postjson($("form")[0], self.gifts); }; }; viewmodel = new giftmodel([ { muhasebekodu: ko.observable().extend({ notify: 'always' }), gidertipleri: giderlers, selectedoptionvalue: ko.observable(selectedgider), faturano: "", matrah: "", kdv: "", geneltoplam: "", kdvtipleri: ["0", "1", "8", "18"], selectedokdvptionvalue: ko.observable("0"), odemeseklitipleri: odemetipleri, selectedoostptionvalue: ko.observable(selectedodemetipi), aciklama: "" }, ]); ko.applybindings(viewmodel); // activate jquery validation //$("form").validate({ submithandler: viewmodel.save }); $(".faturanoinp").bind('keyup', function (e) { $(this).val($(this).val().touppercase()); }); });
i want set muhasebekodu input when user changed dropdown control on same screen, have write below jscript. has been changed new value in model not apearing on control
function setcodefield(e) { var mcode = document.getelementbyid('contentplaceholder1_hdnmuhasebekodlari').value; var mcodes = mcode.split(","); (i = 0; < mcodes.length; i++) { var namevalues = mcodes[i].split(":"); var name = namevalues[0]; var value = namevalues[1]; if (e == name) { self.gifts()[self.gifts.length].muhasebekodu.value = value; self.gifts()[self.gifts.length].muhasebekodu.extend({ notify: 'always' }); } } }
i have 2 control 1 of them changed want see on control binded viewmodel. self.gifts.xxx = 'new value'; want see on binded control
in knockout set value of observable this:
self.gifts()[self.gifts.length].muhasebekodu(value);
Comments
Post a Comment