1

このEnter link description here anwserを見つけましたが、それは私にとっては良くありません.

「クリック」イベントをトリガーせずにモデル値を変更できるようにしたいと考えています。したがって、現在、ユーザーが値を変更すると(フィドルではありません)、一部のコードが「変更」イベントを生成します。しかし、モデルはその値を変更しません。

だから私は

モデル

    function AppViewModel() {
    //Common
    this.TimeType = ko.observable(0);
    }

$(document).ready(function () {
     viewModel = new AppViewModel();    
    ko.applyBindings(viewModel, $("#testId")[0]);

    $("#change").click(function () {
         $("#third").attr('checked', 'checked');
         $("#third").change();
         alert(viewModel.TimeType());
    });   
});

HTML

<div id="testId" class="holder main-holder">
        <div class="holder">
           <input checked="checked" data-bind="checked: TimeType" id="Time" name="Type" type="radio" value="0"><label for="Time" class=" ">First</label>
        </div>
        <div class="holder">
            </div><input data-bind="checked: TimeType" id="TimeWithTypeDay" name="Type" type="radio" value="1"><label for="TimeWithTypeDay">Second</label>
        </div>
        <div class="holder">
            <input id="third" data-bind="checked: TimeType" id="TimeWithDaysOfWeek" name="Type" type="radio" value="2"><label for="TimeWithDaysOfWeek" >Third</label>
        </div>
    </div>
            <input id="change" type="button" value ="Change"/>

フィドル:

http://jsfiddle.net/skiff/4Wnmu/3/

4

2 に答える 2

1

ラジオ ボタンとのノックアウト チェック バインディングでは、プロパティはラジオ ボタンの値と等しくなければなりません。値は常に文字列です。この作業フィドルを確認してください:

働くフィドル

JS

var vm = new AppViewModel();

$("#change").click(function () {
    vm.TimeType("2");
    alert(vm.TimeType());
});   

function AppViewModel() {
    this.TimeType = ko.observable("1");
}

ko.applyBindings(vm);
于 2013-04-03T16:35:16.727 に答える
0

それはあなたが探しているものですか?

viewModel.TimeType.subscribe();
于 2013-04-03T16:01:41.410 に答える