Javascript 选择2返回项目的位置,而不是项目的ID
我使用select2允许用户选择多个选项。除了一个令人沮丧的问题外,一切正常 我第一次单击save按钮保存项目时,它起作用了。但在随后的调用中,项目的ID将替换为项目的位置。例如,如果我选择了ID 3、6和10,则第一次保存将起作用,并将3、6、10传递给控制器 但是,如果我重新加载视图并单击“保存”,则会传入数字0、1、2(即它们在选择框中的相对位置) 代码如下: 首先,HTML:Javascript 选择2返回项目的位置,而不是项目的ID,javascript,asp.net-mvc,jquery-select2,Javascript,Asp.net Mvc,Jquery Select2,我使用select2允许用户选择多个选项。除了一个令人沮丧的问题外,一切正常 我第一次单击save按钮保存项目时,它起作用了。但在随后的调用中,项目的ID将替换为项目的位置。例如,如果我选择了ID 3、6和10,则第一次保存将起作用,并将3、6、10传递给控制器 但是,如果我重新加载视图并单击“保存”,则会传入数字0、1、2(即它们在选择框中的相对位置) 代码如下: 首先,HTML: <select id="selectGroup" class="form-c
<select id="selectGroup" class="form-control" multiple="true">
为犯同样错误的人发帖 问题出在我的加载中-我需要添加GroupID作为键,而不是键参数值中的行号:
success: function (data) {
$.each(JSON.parse(data), function (key, entry) {
var $newOption = $("<option selected='selected'></option>").val(entry.GroupID).text(entry.GroupName);
$("#selectGroup").append($newOption).trigger('change');
}
成功:函数(数据){
$.each(JSON.parse(数据)、函数(键、条目){
var$newOption=$(“”).val(entry.GroupID).text(entry.GroupName);
$(“#selectGroup”).append($newOption).trigger('change');
}
function LoanGroupSave(loanID) {
var grpIDs = '';
[].forEach.call(document.querySelectorAll('#selectGroup :checked'), function (elm) {
grpIDs += elm.value + ',';
})
var editURL = location.protocol + '//' + location.host + "/Loan/LoanGroupSave";
//alert(editURL);
var obj = { "LoanID": loanID, "GroupIDs": grpIDs };
alert(JSON.stringify(obj));
$.ajax({
type: "POST",
url: editURL,
data: JSON.stringify(obj),
contentType: "application/json; charset=utf-8",
dataType: "json",
}).done(function (response) {
if (response.success) {
Notify("Group(s) information has been saved", "Saved", "success", false, "toast-top-right", 5000);
}
else {
OpenPopupGeneral("Error(s)", response.message);
}
}).fail(function (jqXHR, textStatus, errorThrown) {
OpenPopupGeneral("Unexpected Error(s)", "Error = " + errorThrown);
});
}
success: function (data) {
$.each(JSON.parse(data), function (key, entry) {
var $newOption = $("<option selected='selected'></option>").val(entry.GroupID).text(entry.GroupName);
$("#selectGroup").append($newOption).trigger('change');
}