ノックアウトjsのラジオボタンに問題があります。解決策を見つけるのに今まで何日もかかりました。以下の私のコードを見ることができます:
これは私のhtmlタグです:
<ul data-bind="foreach:services">
<li>
<input type="radio" data-bind="value:id,checked:$parent.selectedservice" name="burwood" />
<span data-bind="text: name"></span>
</li>
</ul>
<br />
<button data-bind="click:clicksave">Save</button>
次に、これは私のjavascriptです:
var service = function (id, name) {
var self = this;
self.id = ko.observable(id);
self.name = ko.observable(name);
};
var model = function () {
var self = this;
self.services = ko.observableArray([]);
self.addservice = function (service) {
self.services.push(service);
};
self.selectedservice = ko.observable();
self.selectedservice.subscribe(function () {
alert('call ajax here.');
}, null, "change");
self.clicksave = function () {
alert(self.selectedservice);
};
}
var m = new model();
m.addservice(new service('1', 'First'));
m.addservice(new service('2', 'Second'));
m.addservice(new service('3', 'Third'));
m.addservice(new service('4', 'Fourth'));
m.selectedservice = '1';
ko.applyBindings(m);
コードの実際の動作については、http://jsfiddle.net/johnhadikusumo/jdApu/にアクセスしてください。
基本的に、ユーザーがラジオボタンのリストの選択を変更したときに ajax を呼び出す必要があります。何らかの理由で値が変更されたときに self.selectedservice.subscribe がトリガーされないように思われる場合。
何か助けはありますか?
乾杯
ジョン