2013-04-16 72 views
0

我有兩個下拉菜單更改將更新標籤。使用文本綁定將標籤綁定到viewModel中的明顯字段。但是,當標籤文本發生更改時,提交給服務器的viewModel不會更新。我找不到來自淘汰網站的相關信息。我錯過了什麼嗎?KnockOut.js文本綁定客戶端端更改不更新viewmodel

HTML

 <select class="string-match-dropdown"> 
      <option value="*">contains</option> 
      <option value="^">starts with</option> 
      <option value="$">ends with</option> 
      <option value="=">is exactly</option> 
      <option value="@@">has value</option> 
     </select> 
     <select class="date-money-match-dropdown"> 
      <option value="eq">=</option> 
      <option value="noteq"><></option> 
      <option value="gt">></option> 
      <option value="gteq">>=</option> 
      <option value="lt"><</option> 
      <option value="lteq">&lt;=</option> 
     </select> 
     <label class="match-label" data-bind='html: qualifier'></label> 

JS

$('.date-money-match-dropdown').live('change', function() { 
    $(this).parent().find('.match-label').html($(this).find('option:selected').text()); 
}); 

$('.string-match-dropdown').live('change', function() { 
    $(this).parent().find('.match-label').html($(this).find('option:selected').text()); 
}); 
+1

是的,你錯過了問題的代碼!作爲一名初學者,你如何用jquery更新標籤?順便說一下,我不認爲'text'綁定是兩種方式...所以請張貼您的代碼的相關部分(JSFiddle中的repro會更好)否則我們只是在這裏猜測。 – nemesv

+0

發佈了html數據綁定和jQuery代碼來更新標籤 – Laguna

+3

爲什麼你需要jquery來處理下拉變化?爲什麼不使用純淘汰解決方案http://jsfiddle.net/qXvLp/? – nemesv

回答

1

對於這種情況,你不需要使用jquery在所有。

因爲你已經在你的視圖模型可觀察qualifier你只需要在你的select s使用value binding和淘汰賽將做變更爲你辦理:

<select class="string-match-dropdown" data-bind='value: qualifier'> 
    <option value="*">contains</option> 
    <option value="^">starts with</option> 
    <option value="$">ends with</option> 
    <option value="=">is exactly</option> 
    <option value="@@">has value</option> 
</select> 
<select class="date-money-match-dropdown" data-bind='value: qualifier'> 
    <option value="eq">=</option> 
    <option value="noteq"><></option> 
    <option value="gt">></option> 
    <option value="gteq">>=</option> 
    <option value="lt"><</option> 
    <option value="lteq">&lt;=</option> 
</select> 
<label class="match-label" data-bind='html: qualifier'></label> 

演示JSFiddle.