淘汰选择改变和json

时间:2013-04-16 09:05:58

标签: knockout.js

我的json数据是

{"person":
        [
        {"Name":"Name1",
        "City":"1",
        "PostCode":1234
        },
        {"Name":"Name2",
        "City":"2",
        "PostCode":12
        }]
}

我的用户界面是,

<tbody id="container" data-bind="foreach: person">

                        <tr>
                            <td>
                                <input id="Name" style="width: 100px" type="text" data-bind="value:Name" class="dynamic" />
                            </td>
                            <td>
                                <select id="City" style="width: 100px" data-bind="value: City" class="dynamic" >                            
                                    <option value="0">NY</option>
                                    <option value="1">NJ</option>
                                    <option value="2">CA</option>                                 
                                </select>
                            </td>
                            <td>
                                <input id="PostCode" disabled="disabled" style="width: 100px" type="text" data-bind="value: PostCode, enable: City() == '0' || City() == '1'"" class="dynamic"/>
                            </td>

<select id="City" style="width: 100px" data-bind="value: County" class="dynamic" >                            
                                <option value="0">Test0</option>
                                <option value="1">Test1</option>
                                <option value="2">Test2</option>                                 
                            </select>
                               </td>
                        </tr>
                    </tbody>

我的viewModel是,

  <script type="text/javascript">
  var jsonData = {};
    $.getJSON("test.json", function (data) {
        jsonData = ko.mapping.fromJS(data);       
        ko.applyBindings(jsonData);
    }
);
</script>

我需要做的是当我更改下拉文本时,我必须根据所选城市更改我的县下拉列表。 我的下拉文字不是来自我的json 。我尝试使用“订阅”选项。有人可以帮我吗?

1 个答案:

答案 0 :(得分:3)

您可以在邮政编码文本框中使用启用绑定,例如:

<td>
     <input id="PostCode" disabled="disabled" style="width: 100px" type="text" 
      data-bind="
          value: PostCode, 
          enable: City() == '1' || City() == '2'" 
     class="dynamic"/>
</td>