1

我在这里找到了这个输入链接描述,但这对我没有好处。

我希望能够在不触发“点击”事件的情况下更改模型值。因此,现在当用户更改值(不在小提琴中)时,一些代码会生成“更改”事件。但是模型并没有改变它的价值。

所以我有一个

模型

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