Estoy teniendo problemas a la hora de mostrar algunos datos en el navegador con IE6, con el resto de exploradores anda perfecto, pero resulta que con IE6 no anda.
El codigo que tengo es el siguiente.
Donde primero se elije un cliente, ese cliente tiene asociados nivel 1 y ese nivel 1, tiene asociado nivel 2, a su vez cada uno tiene asociados o no series documentales.
El problema radica en que una de las funcionalidades del sistema es que si alguno de los niveles es unico, deberia autoseleccionarse, por eso utulizo estas lineas de codigo " $("#Nivel1").val(j.niveles1[0].optionValue);
$("select#Nivel1").change();"
Pero resulta que en .change en IE6 parece que no se esta ejecutando, o resulta quizas que el que capta el change no esta haciendolo, es decir esta parte " $("select#Nivel1").change(function(){ "..
Pero esto solo sucede si se hace el .change() automaticamente, ya que cuando hacemos un change del option a mano, resulta que si trae los niveles "hijos".
Código Javascript:
Ver original
function crearOptions(json) { var opcion = ''; for (var i = 0; i < json.length; i++) { opcion += '<option value="' + json[i].optionValue + '">' + json[i].optionDisplay + '</option>'; } return opcion; } $(function(){ //Filtar Nivel1 por Cliente Seleccionado $("select#Cliente").change(function(){ $("select#Nivel1").html('<option value="null">Cargando...</option>'); $("select#Nivel2, select#Nivel3, select#Nivel4, select#SerieDocumental").html('<option value="null">N/A</option>'); $.getJSON("/ajax/ajax.busqueda.php",{acc: 'getNiveles1Cliente', cliente: $(this).val(), documento: documentoBuscar}, function(j){ var options = ''; if (j.niveles1 && j.niveles1.length > 0) { if (j.niveles1.length > 0) { options += '<option value="null">Seleccionar...</option>'; } options += crearOptions(j.niveles1); $("select#Nivel1").html(options); if (j.niveles1.length == 1 && (!j.series || j.series.length == 0)) { //$("#Nivel1 option").eq(j.niveles1[0].optionValue).attr("selected", true); $("#Nivel1").val(j.niveles1[0].optionValue); $("select#Nivel1").change(); } } else { $("select#Nivel1").html('<option value="null">N/A</option>'); } options = ''; if (j.series && j.series.length > 0) { if (j.series.length > 0) { options += '<option value="null">Seleccionar...</option>'; } options += crearOptions(j.series); $("select#SerieDocumental").html(options); if (j.series.length == 1) { alert ("ASDAS"); //$("#SerieDocumental option").eq(j.series[0].optionValue).attr("selected", true); $("#SerieDocumental").val(j.series[0].optionValue); $("select#SerieDocumental").change(); //if ($("select#SerieDocumental").val() == j.series[0].optionValue) $("select#SerieDocumental").change(); } } else { $("select#SerieDocumental").html('<option value="null">N/A</option>'); } }) }); //Filtar Nivel2 por Nivel1 Seleccionado $("select#Nivel1").change(function(){ //Muestro que se está procesando y aún no hay subopciones disponibles $("select#Nivel2").html('<option value="null">Cargando...</option>'); $("select#Nivel3, select#Nivel4, select#SerieDocumental").html('<option value="null">N/A</option>'); //Obtengo el JSON por ajax $.getJSON("/ajax/ajax.busqueda.php",{acc: 'getNiveles2', nivel1: $(this).val(), cliente: $("select#Cliente").val(), documento: documentoBuscar}, function(j){ var options = ''; if (j.niveles2 && j.niveles2.length > 0) { //Si esttá seteado niveles 2 //Si hay más de 1 nivel 2, o hay solo uno pero existen series dentro del nivel 1 seleccionado muestro la opcion Seleccionar if (j.niveles2.length > 0) { options += '<option value="null">Seleccionar...</option>'; } options += crearOptions(j.niveles2); $("select#Nivel2").html(options); if (j.niveles2.length == 1 && (!j.series || j.series.length == 0)) { //if ($("select#Nivel2").val() == j.niveles2[0].optionValue) $("#Nivel2").val(j.niveles2[0].optionValue); $("select#Nivel2").change(); } } else { $("select#Nivel2").html('<option value="null">N/A</option>'); } //Si no hay niveles dos muestro N/A options = ''; if (j.series && j.series.length > 0) { if (j.series.length > 0) { options += '<option value="null">Seleccionar...</option>'; } options += crearOptions(j.series); $("select#SerieDocumental").html(options); if (j.series.length == 1) { //alert(j.series[0].optionValue); //if ($("select#SerieDocumental").val() == j.series[0].optionValue) $("select#SerieDocumental").change(); //$("#SerieDocumental option[value="+j.series[0].optionValue+"]").attr("selected", true); $("#SerieDocumental").val(j.series[0].optionValue); $("#SerieDocumental").change(); } } else { $("select#SerieDocumental").html('<option value="null">N/A</option>'); } }) }); });
Desde ya muchas gracias por leer,
Y gracias por ayudar siempre.
Saludos