2012-12-11 71 views
0

更新代碼:Knockoutjs MULTISELECT沒有更新

http://jsfiddle.net/S96pA/1/

<!DOCTYPE html> 
<html lang="en"> 
<head> 
<meta charset="utf-8"> 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js" type="text/javascript"></script> 
<script src="http://github.com/downloads/SteveSanderson/knockout/knockout-2.2.0.js" type="text/javascript"></script> 

</head> 

<body> 

<form id="new-pub"> 

    <input data-bind="value: Title" /><br/> 

    <select size="10" multiple="multiple" 
      data-bind="selectedOptions: Attachment, options: AttachmentSelect"></select> 


</form> 


<script type="text/javascript"> 

var AttachmentSelect=["C2012_info_mail.pdf", "C2012_programme.pdf"]; 

var viewModel = 
{ 
    Title : ko.observable('Hello world'), 
    Attachment: ko.observableArray([ "C2012_info_mail.pdf" , "C2012_programme.pdf" ]) 
}; 

ko.applyBindings(viewModel, document.getElementById("new-pub")); 

</script> 

</body> 
</html> 
​ 

預計,該項目selected突出顯示(選擇),但沒有任何反應。爲什麼?

回答

1

您必須添加value綁定到您的選擇:

<select data-bind="options: myList, value: selected" multiple="multiple" size="5"> 

而且視圖模型是一個函數,所以你必須創建它的實例:

ko.applyBindings(new viewModel()); 

這裏是工作提琴:http://jsfiddle.net/wM3EX/4/

編輯

更改訂單optionsselectedOptions的訂單。選項應該總是第一:

<select size="10" multiple="true" 
     data-bind="options: AttachmentSelect, selectedOptions: Attachment"> 
</select> 

工作小提琴:http://jsfiddle.net/S96pA/2/

+0

對不起,錯誤的代碼。請參閱更新後的問題 – Lari13

+0

查看更新的答案。 –

+0

:)哈哈,順序很重要!非常感謝你! – Lari13