0

ドロップダウンを ko.observableArray([]) にバインドしています。ここでは、ko.observable() である vm.selectedUser で選択した値をキャプチャしています。onchange イベント @Html.HiddenFor(m => m.UserName, new {id="hiddenUser" }) で、この値を非表示フィールドに割り当てたい

$("#hiddenUser").val(vm.selectedUser);

助けてください。ありがとう

4

3 に答える 3

0

この 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も参照してください。

于 2013-10-13T15:45:33.237 に答える
0

あなたはそれを行うために変更を購読することができます

vm.selectedUser.subscribe(function(newValue) {
    $("#hiddenUser").val(newValue));
});

または、隠しフィールドをオブザーバブルにバインドするだけでも機能するはずです

@Html.HiddenFor(m => m.UserName, new {id="hiddenUser",data_bind = "value: selectedUser" })
于 2013-10-13T14:24:24.310 に答える