Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/02/2013, 14:39
elyama23
 
Fecha de Ingreso: abril-2010
Mensajes: 15
Antigüedad: 14 años, 6 meses
Puntos: 0
Problema Jquery IE 6

Buenas gente,
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
  1. function crearOptions(json) {
  2.     var opcion = '';
  3.     for (var i = 0; i < json.length; i++) {
  4.         opcion += '<option value="' + json[i].optionValue + '">' + json[i].optionDisplay + '</option>';
  5.     }
  6.     return opcion;
  7. }
  8. $(function(){
  9.     //Filtar Nivel1 por Cliente Seleccionado
  10.     $("select#Cliente").change(function(){
  11.         $("select#Nivel1").html('<option value="null">Cargando...</option>');
  12.         $("select#Nivel2, select#Nivel3, select#Nivel4, select#SerieDocumental").html('<option value="null">N/A</option>');
  13.         $.getJSON("/ajax/ajax.busqueda.php",{acc: 'getNiveles1Cliente', cliente: $(this).val(), documento: documentoBuscar}, function(j){
  14.           var options = '';
  15.           if (j.niveles1 && j.niveles1.length > 0) {
  16.               if (j.niveles1.length > 0) {
  17.                 options += '<option value="null">Seleccionar...</option>';
  18.               }
  19.               options += crearOptions(j.niveles1);
  20.               $("select#Nivel1").html(options);
  21.               if (j.niveles1.length == 1 && (!j.series || j.series.length == 0)) {
  22.                     //$("#Nivel1 option").eq(j.niveles1[0].optionValue).attr("selected", true);
  23.                     $("#Nivel1").val(j.niveles1[0].optionValue);
  24.                     $("select#Nivel1").change();
  25.                    
  26.                    
  27.               }
  28.           } else { $("select#Nivel1").html('<option value="null">N/A</option>'); }
  29.          
  30.           options = '';
  31.           if (j.series && j.series.length > 0) {
  32.               if (j.series.length > 0) {
  33.                 options += '<option value="null">Seleccionar...</option>';
  34.               }
  35.               options += crearOptions(j.series);
  36.               $("select#SerieDocumental").html(options);
  37.               if (j.series.length == 1) {
  38.                 alert ("ASDAS");
  39.                 //$("#SerieDocumental option").eq(j.series[0].optionValue).attr("selected", true);
  40.                 $("#SerieDocumental").val(j.series[0].optionValue);
  41.                 $("select#SerieDocumental").change();
  42.                 //if ($("select#SerieDocumental").val() == j.series[0].optionValue) $("select#SerieDocumental").change();
  43.               }
  44.           } else { $("select#SerieDocumental").html('<option value="null">N/A</option>'); }
  45.         })
  46.   });
  47.   //Filtar Nivel2 por Nivel1 Seleccionado
  48.     $("select#Nivel1").change(function(){
  49.       //Muestro que se está procesando y aún no hay subopciones disponibles
  50.       $("select#Nivel2").html('<option value="null">Cargando...</option>');
  51.       $("select#Nivel3, select#Nivel4, select#SerieDocumental").html('<option value="null">N/A</option>');
  52.       //Obtengo el JSON por ajax
  53.       $.getJSON("/ajax/ajax.busqueda.php",{acc: 'getNiveles2', nivel1: $(this).val(), cliente: $("select#Cliente").val(), documento: documentoBuscar}, function(j){
  54.           var options = '';
  55.           if (j.niveles2 && j.niveles2.length > 0) { //Si esttá seteado niveles 2
  56.               //Si hay más de 1 nivel 2, o hay solo uno pero existen series dentro del nivel 1 seleccionado muestro la opcion Seleccionar
  57.               if (j.niveles2.length > 0) {
  58.                 options += '<option value="null">Seleccionar...</option>';
  59.               }
  60.               options += crearOptions(j.niveles2);
  61.               $("select#Nivel2").html(options);
  62.               if (j.niveles2.length == 1 && (!j.series || j.series.length == 0)) {
  63.                 //if ($("select#Nivel2").val() == j.niveles2[0].optionValue)
  64.                 $("#Nivel2").val(j.niveles2[0].optionValue);
  65.                 $("select#Nivel2").change();
  66.               }
  67.           } else { $("select#Nivel2").html('<option value="null">N/A</option>'); } //Si no hay niveles dos muestro N/A
  68.          
  69.           options = '';
  70.           if (j.series && j.series.length > 0) {
  71.               if (j.series.length > 0) {
  72.                 options += '<option value="null">Seleccionar...</option>';
  73.               }
  74.               options += crearOptions(j.series);
  75.               $("select#SerieDocumental").html(options);
  76.               if (j.series.length == 1) {
  77.                 //alert(j.series[0].optionValue);
  78.                 //if ($("select#SerieDocumental").val() == j.series[0].optionValue) $("select#SerieDocumental").change();
  79.                 //$("#SerieDocumental option[value="+j.series[0].optionValue+"]").attr("selected", true);
  80.                 $("#SerieDocumental").val(j.series[0].optionValue);
  81.                 $("#SerieDocumental").change();
  82.                
  83.               }
  84.           } else { $("select#SerieDocumental").html('<option value="null">N/A</option>'); }
  85.         })
  86.     });
  87. });

Desde ya muchas gracias por leer,
Y gracias por ayudar siempre.
Saludos