2013-10-13 49 views
0

我有一個綁定到ko.observableArray([])的下拉列表。這裏我捕獲了vm.selectedUser中的選定值,它是一個ko.observable()。我想在onc​​hange事件@ Html.HiddenFor(m => m.UserName,new {id =「hiddenUser」})上將這個值賦給一個隱藏的字段。如何通過可觀察的屬性(淘汰賽)來查看

$(「#hiddenUser」)。val vm.selectedUser);

請幫忙。 感謝

+0

您可以訂閱改變並做到這一點 –

+0

謝謝@RoyiMindel – monu

回答

0

,您可以訂閱改做

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

或只是隱藏字段綁定到你的觀察到的,這應該工作太

@Html.HiddenFor(m => m.UserName, new {id="hiddenUser",data_bind = "value: selectedUser" }) 
0

你可以做一些事情like this 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> 

您也可以看看Fiddle Example by RP Niemeyer

0

不需要jQuery和訂閱,只需將隱藏的輸入直接綁定到selectedUser observable:

@Html.HiddenFor(m => m.UserName, new {id="hiddenUser", data_bind="value: selectedUser" }) 

請注意,它是「data_bind」而不是「data-bind」。在Razor中,短劃線是無效的名稱字符,但會自動將下劃線轉換爲短劃線。

[不意味着這是一個廣告,但是這是使用基因敲除和MVC一起在WintellectNOW我在視頻演示中的一個項目點com,如果你有興趣。]