2014-05-21 50 views
0

我一直在研究AutoComplete,它實際上運行的很酷,但是當我通過在文本框中鍵入一個字符從顯示的列表中選擇某個字符時,它將被放置在文本框中。在直到此時樣樣精自動完成所選文字未按預期儲存? KnockOut

但現在的問題

是當我試圖將數據保存在文本框與其他領域爲DB。我不知道爲什麼只有我輸入的字符纔會保存,但不是我使用自動完成從顯示的列表中選擇的數據。

請看看我的代碼&建議:

自動完成代碼

$('#txtAccountProspectnurture').autocomplete({ 
      source: function (request, response) { 
       $.ajax({ 
        url: "/api/NurtureAccount", 
        data: { id: request.term }, 
        dataType: 'json', 
        type: 'GET', 
        success: function (data) { 
         response($.map(data, function (item) { 
          return { 
           label: item.Text, 
           value: item.Value 
          } 
         })); 
        } 
       }) 
      }, 
      select: function (event, ui) { 
       debugger; 
       $('#txtAccountProspectnurture').val(ui.item.label); //here i am gettihg fulltext 
       $('#accountnurtureval').val(ui.item.value); 
       return false; 
      }, 
      minLength: 1 
     }); 

視圖模型:

self.btnNurtureAddAccount = function() { 
     debugger; 
     var nurtureaccountids = $("#accountnurtureval").val() 
     self.NurtureAccountId(nurtureaccountids); 
     $.ajax({ 
      url: '/api/NurtureAccount/', 
      cache: false, 
      type: 'POST', 
      contentType: 'application/json; charset=utf-8', 
     data: ko.toJSON(self), //in this self i am JUST getting single character i entered 
      success: function (data) { 
      } 
     }); 
    } 

我一個PI控制器Post方法:

public bool Post(models m) 
     { 
      //Here in **m.NurtureAccountName** i am getting only typed letter not the complete one 
      //my save code here 
     } 

任何建議都讚賞

謝謝:)

回答

1

在你select功能,你需要更新視圖模型,而不是使用jQuery手動更新值。

對於爲例,如果你的HTML是這樣的:

<input id="txtAccountProspectnurture" data-bind="value: accountProspectnurture, 
               valueUpdate: 'blur'" /> 
<input id="accountnurtureval" data-bind="value: accountnurture, 
             valueUpdate: 'blur'" /> 

你會在你選擇做:

select: function (event, ui) { 
    viewModel.accountProspectnurture(ui.item.label); 
    viewModel.accountnurture(ui.item.value); 
    return false; 
} 

而且spaninput將自動淘汰賽進行更新。

+0

gotcha mate但已使用valueupdate:'模糊'在數據綁定到我的文本框。請在上面包含此代碼,以便我可以標記您的答案:)乾杯。 –

+0

@supercool喜歡這個? –

+1

耶就是這樣。很酷。謝謝你的幫助 –