Я пытаюсь создать динамическую страницу, где загрузка и контейнер с флажками загружаются на основе выбранной опции первого выбора. Используя 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 и соответствующей функции из нашего бэкэнда.