KnockoutjsとともにTwitterブートストラップを使用するASP.NetMVC4Webサイトがあります。要件の1つは、ユーザーがいくつかのオプションを切り替えたときにビューモデルを更新することです。これを行うために、次のラジオボタンを設定しました
<div id = "myradio" class="btn-group" data-toggle="buttons-radio">
<button value="1" type="button" class="btn btn-primary active" data-bind="click: refresh">1</button>
<button value="2" type="button" class="btn btn-primary" data-bind="click: refresh">2</button>
<button value="3" type="button" class="btn btn-primary" data-bind="click: refresh">3</button>
</div>
私のKnockoutjsビューモデルは
function ViewModel() {
var self = this;
//this function is called when the radio button is clicked
self.refresh = function(){
alert($('#myradio > button.active').val());
};
}
私が抱えている問題は、クリックイベントの発生が早すぎて、現在の値ではなく、ラジオボタンの以前の値が表示されることです。この問題を実証するために、私はjsfiddleをセットアップしました
現在の値を取得する方法はありますか?knockoutjsを使用すると、イベントを「更新」機能に渡すことができますか?更新機能の実行時にどのラジオオプションが選択されているかを検出できる限り、どのようなアイデアでも構いません。