2015-05-14 6 views
0

У меня есть выпадающем DropDownBox'е, который переплетен в videmodel с ЕогеаспомKnockoutJS изменение модели контролер

<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> 

И моделью, как этот

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 now transmit to server: " + ko.utils.stringifyJson(self.gifts)); 
       // To actually transmit to server as a 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()); 
     }); 

    }); 

Я хочу установить мой вход muhasebekodu когда пользователь изменила выпадающий контроль на одном экране, я пишу ниже jscript. оно было изменено на новое значение в модели, но она не apearing по контролю

function SetCodeField(e) { 
     var mcode = document.getElementById('ContentPlaceHolder1_hdnmuhasebekodlari').value; 
     var mcodes = mcode.split(","); 
     for (i = 0; i < 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' }); 
      } 
     } 
    } 

У меня есть 2 управления один из них изменился я хочу видеть на другой элемент управления всегда связанное приложении к ViewModel. self.gifts.XXX = 'новое значение'; я хочу увидеть это на переплетены управлениях

ответ

1

В нокаута вы установите значение наблюдаемого следующим образом:

self.gifts()[self.gifts.length].muhasebekodu(value); 
+0

Спасибо Того self.gifts() [self.gifts() длина-1.]. muhasebekodu (значение); – dewelloper

Смежные вопросы