微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

select2物料的返回位置,而不是物料ID

如何解决select2物料的返回位置,而不是物料ID

我正在使用select2来允许用户选择多个选项。除了一个令人沮丧的问题,一切都工作正常。

我第一次单击“保存”按钮以保存项目,它可以工作。但是,在随后的调用中,这些项目的ID将替换为这些项目的位置。例如,如果我选择了ID 3、6和10,则第一个Save将起作用,并将3,6,10传递给控制器​​。

但是,如果我重新加载视图并单击“保存”,则会传入数字0,1,2(即,它们在选择中的相对位置)。

代码如下:

首先,HTML:

<select id="selectGroup" class="form-control" multiple="true">

在$(document).ready上:

    // Load Groups
    $("#selectGroup").select2({ placeholder: 'Select' });
    $.ajax({
        url: ROOT_URL + "Group/GroupList",type: "GET",success: function (data) {

            let dropdown = $('#selectGroup');
            dropdown.empty();
            dropdown.append($('<option></option>').attr('value',0).text("(Select)"));
            $.each(JSON.parse(data),function (key,entry) {
                dropdown.append($('<option></option>').attr('value',entry.GroupID).text(entry.GroupName));
            })

        },error: function (passparams) {
            Notify(passparams,"Unexpected Error Loading Groups","error");
        }
    });

最后是保存的js(通过传递借贷ID的按钮调用):

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

}

解决方法

发帖给相同错误的人。

问题在我的负担中-我需要添加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');
            }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。