Почему мой оператор select2 .trigger () обновляется только в одном поле? - PullRequest
0 голосов
/ 22 января 2020

Я пишу некоторый код для изменения значения в поле select2. Однако у меня есть пара вызовов Ajax, чтобы сохранить и извлечь данные из моего Java бэкэнда. Несмотря на то, что я получаю все данные обратно правильно, когда я go, чтобы установить его в поле, он показывает одно, но не другое. Под этим я подразумеваю, что он выбирает только один фрагмент данных и вместо изменения поля в соответствии с выбранным значением просто печатает, устанавливает значение того, что было последним значением.

Так, например, я иметь 2 значения в массиве. Как только я выберу значение из внешнего интерфейса, оно возьмет соответствующее имя и найдет значение во внутреннем интерфейсе. Если они совпадают, информация передается обратно. Проблема возникает, когда в массиве имеется более 2 значений для выбора. Он будет передавать только последнее значение в массиве.

JQuery: отправка данных

function infoForSelData() {

                        var tier = $("#selectData1").val();
                        var type = $("#selectData2").val();
                        var name = $("#nameField").val();
                        var server = $("#selectData3").val();
                        var query = $("#exampleFormControlTextarea1").val();



                        var search = {
                            "dtoTiername" : tier,
                            "dtoSystem" : type,
                            "dtoMqlList" : name,
                            "dtoMqlSel" : server,
                            "dtoTagNameOne" : query 

                        }

                        $.ajax({
                            type : "POST",
                            contentType : 'application/json; charset=utf-8',
                            dataType : 'text',
                            url : "/ajax/saveSelInfo",
                            data : JSON.stringify(search),
                            success : function(result) {

                                console.log("Success: ", result);

                                var selectorName = eventSelect.val() + "_" + eventSelectTwo.val();

                                $(".table-active").attr('id', selectorName);
                                $('.table-active').find("td:first-child").text(result);

                            },
                            error : function(err) {

                                console.log("Error: ", err);

                            }

                        });
                    }

JQuery: для получения данных

function getDataAboutSelector(name) {

                        var search2 = {
                            "dtoTiername" : name

                        }

                        $.ajax({
                                    type : "POST",
                                    contentType : 'application/json; charset=utf-8',
                                    dataType : 'json',
                                    url : "/ajax/getDataForSelector",
                                    data : JSON.stringify(search2),
                                    success : function(result) {

                                        var array = result[0].split('_');


                                        $('#selectData1').val(array[0]).trigger('change');
                                        //This is where the problem occurs
                                        $('#selectData2').val(array[1]).trigger('change');


                                        $('#nameField').val(result[0]);
                                        $('#exampleFormControlTextarea1').val(result[1]);
                                        $('#selectData3').val(result[2]).trigger('change');


                                        console.log("Array 0: " + array[0]);
                                        console.log("Array 1: " + array[1]);

                                        console.log("Result 0: " + result[0]);
                                        console.log("Result 1: " + result[1]);
                                        console.log("Result 2: " + result[2]);




                                    },
                                    error : function(err) {

                                        console.log(err);

                                    }

                                });
                    }

...