Select语句中的选定值使用'选项'在淘汰赛中

时间:2013-02-03 14:48:37

标签: json knockout.js

我正在尝试使用Knockout JS提交表单,该数据作为json传递。我在这里遇到了问题。以下是我的KO模型。

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对象中获取的数组填充它,其包含如下

$(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); })
});

已审核的数据。批准者的格式为:

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

我需要下拉列表的文本为'Display_Name',Value需要'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)发送值?

1 个答案:

答案 0 :(得分: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> 

我希望这会有所帮助