AJAX не работает на Chrome или Firefox, но работает правильно в веб-браузере Eclipse - PullRequest
0 голосов
/ 21 октября 2019

Я пытаюсь создать динамическую страницу, где загрузка и контейнер с флажками загружаются на основе выбранной опции первого выбора. Используя Bootstrap, кстати, не уверен, что это имеет значение.

После выбора опции в первом выборе, второй выбор загружается отлично, но контейнер с флажками иногда делает, а иногда нет, что не имеет смысламне. В Eclipse он работает 95% времени, а в Chrome он просто решает, когда работать случайным образом.

Я искал и обнаружил ошибку в своем коде AJAX, но не нашел ничего надежного. Я совершенно новичок в этом, так что, возможно, я упускаю что-то основное. Консоль Chrome не показывает никаких ошибок, если она работает или нет.

altaEdicion.jsp:

                <form action="altaedicion" method="get" style="margin-left: 25px; width:300px;">

                     <div class="form-group">                       
                        <label for="inputInstituto">Seleccionar Instituto</label>

                        <%     
                            Fabrica factory = Fabrica.getInstance();
                            IControladorCurso contCurso = factory.getIControladorCurso();
                            Set<String> listaInstitutos = contCurso.listarInstitutos();
                        %>

                        <select id="inputInstituto" name="inputInstituto" class="form-control">
                            <option value="" disabled selected></option>      
                            <%  for (String instituto : listaInstitutos) { %>
                                <option value="<%=instituto%>"><%=instituto%></option>
                            <% } %>
                        </select>                                                          
                     </div>

                     <script>
                        $(document).ready(function () {
                            function limpiarSelect(selectbox) {
                                var i;
                                for(i = selectbox.options.length - 1 ; i >= 0 ; i--) {
                                    selectbox.remove(i);
                                }
                            }

                            $("#inputInstituto").on("change", function () {
                                var selectedInstitute = $("#inputInstituto").val();
                                $.ajax({
                                    url: "/edEXT/cargarcursosaltaedicion",
                                    data: {selectedInstitute: selectedInstitute},
                                    method: "GET",
                                    success: function (data) {
                                        $("#inputCurso").html(data);
                                    },
                                    error: function(XMLHttpRequest, textStatus, errorThrown) { 
                                        alert("El instituto seleccionado no tiene cursos asociados");
                                        limpiarSelect(document.getElementById("inputCurso"));
                                        $("#checkboxDocentes").html("");
                                    }   
                                });

                                $.ajax({
                                    url: "/edEXT/cargardocentesaltaedicion",
                                    data: {selectedInstitute: selectedInstitute},
                                    method: "GET",
                                    success: function (data) {
                                        $("#checkboxDocentes").html(data);
                                    },
                                }); 
                            });
                        });
                    </script>

                    <div class="form-group">
                        <label for="inputCurso">Seleccionar Curso</label>
                        <select id="inputCurso" name="inputCurso" class="form-control"></select>
                    </div>

           <div class="form-group">
                        <label for="checkboxDocentes">Seleccionar Docentes</label>
                        <div class="cont" id="checkboxDocentes"></div>
                    </div>

        /* Submit button */

</form>

Сервлет, управляющий ajax, не делает ничего, кроме перенаправления его на другойjsp, где HTML загружается с использованием jsp и соответствующей функции из нашего бэкэнда.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...