ドロップダウンを ko.observableArray([]) にバインドしています。ここでは、ko.observable() である vm.selectedUser で選択した値をキャプチャしています。onchange イベント @Html.HiddenFor(m => m.UserName, new {id="hiddenUser" }) で、この値を非表示フィールドに割り当てたい
$("#hiddenUser").val(vm.selectedUser);
助けてください。ありがとう
ドロップダウンを ko.observableArray([]) にバインドしています。ここでは、ko.observable() である vm.selectedUser で選択した値をキャプチャしています。onchange イベント @Html.HiddenFor(m => m.UserName, new {id="hiddenUser" }) で、この値を非表示フィールドに割り当てたい
$("#hiddenUser").val(vm.selectedUser);
助けてください。ありがとう
この DEMO のようなことができます(私は独自のコーディング スタイルでフィドルを作成しました。あなたのものと一致する場合と一致しない場合があります。申し訳ありません!)
仮定すると、
var Users = ko.observableArray([]);//Your User List
var SelectedUser=ko.observable();//Your Dropdown selected Item, can be ID or Name.
ドロップダウンの変更イベントの関数を作成/定義できます:-
function selectionChanged(data){
console.log(SelectedUser());
$('#hiddenUser').val(SelectedUser());//Displaying it in Textbox
$('#hiddenUser2').val(SelectedUser());//Saving it in hidden field
};
私のHTMLマークアップは次のようになります:-
<select data-bind="options: Users, optionsText: 'Name', optionsValue: 'Id',value: SelectedUser,event: { change: selectionChanged }"></select>
<input type="text" id="hiddenUser"></input>
<input type="hidden" id="hiddenUser2"></input>
RP Niemeyer による Fiddle Exampleも参照してください。
あなたはそれを行うために変更を購読することができます
vm.selectedUser.subscribe(function(newValue) {
$("#hiddenUser").val(newValue));
});
または、隠しフィールドをオブザーバブルにバインドするだけでも機能するはずです
@Html.HiddenFor(m => m.UserName, new {id="hiddenUser",data_bind = "value: selectedUser" })