2013-02-03 48 views
1

我想提交一個使用Knockout JS的表單,該數據作爲json傳遞。我在這裏遇到問題。以下是我的KO模型。Select語句中使用'選項'在淘汰賽js中的選擇值

var permissionRequestModel = { 

coNumber: '1000416', 
employName: 'John Williams', 

fromDate: ko.observable(''), 
toDate: ko.observable(''), 
checkFullDay: ko.observable(false), 

fromTimeHH: ko.observable(''), 
fromTimeMM: ko.observable(''), 
toTimeHH: ko.observable(''), 
toTimeMM: ko.observable(''), 

permissionTypeOne: ko.observable(''), 
permissionTypeTwo: ko.observable(''), 

approverList: ko.observableArray([]), 

reasonLeave: ko.observable('') 

}; 
在此approverList

現在正在被從檢索JSON對象,其作爲populted截取的數組填充如下

$(function() { 
$.getJSON("http://ec2-107-20-7-114.compute-1.amazonaws.com/adco/api/Request/permission?appid=1&opertype=get_approver_list&employeeNo=1000416", function (data) { permissionRequestModel.approverList(data.Approvers); }) 
}); 

的retrived data.Approvers將是以下形式:

"Approvers": 
[{"ID":"DH130618", 
"Display_Name":"Jason Roberts"}] 

我需要下拉列表的文本是'Display_Name',值是'ID',所以我用下面的標記來做到這一點:

<select name="approverList" id="approverList" data-native-menu="true" class="required" data-bind="options: approverList, optionsCaption: 'Select Your Approver', optionsText: 'Display_Name', optionsValue:'ID'"> 
        </select>  

到目前爲止它的罰款,但現在當我使用下面的代碼提交表單,該approverList我們作爲一個對象,而不是選擇的值(即ID)被傳遞:

permissionRequestModel.requestPermission = function() { 
if ($("#permissionRequestForm").valid()) { 
    $.ajax({ 
     url: "http://ec2-107-20-7-114.compute-1.amazonaws.com/adco/api/Request/permission?appid=1&opertype=requestor&employeeNo=1000416", 
     type: "POST", 
     data: ko.toJSON(permissionRequestModel), 
     processData:false, 
     contentType: "application/json", 
     dataType:"json", 
     success: function (result) { 
      alert("Success"); 
     }, 
     error: function (result) { 
      alert(result.responseText); 
     } 
    }); 
} 
else { 
} 
}; 

有誰知道這是爲什麼發生?我如何發送該值(ID)?

+0

你想傳遞的值,例如「DH130618」?現在你在做什麼ko.toJSON(permissionRequestModel)? – DevelopmentIsMyPassion

+0

是的,這就是我想要通過。現在approverList正在作爲一個對象被傳遞,我認爲這是一個空值。 –

+0

你想將整個視圖模型傳遞給j​​son嗎?即使我是新的淘汰賽,但我知道其他方式發送數據到JSON。 – DevelopmentIsMyPassion

回答

1

請多加一個可觀察到的所謂

self.ApproverId = ko.observable(); 

然後在你的HTML綁定像

<select name="approverList" id="approverList" data-native-menu="true" class="required" data-bind="options: approverList, optionsCaption: 'Select Your Approver', optionsText: 'Display_Name', value:ApproverId"></select> 

我希望這有助於