Foros del Web » Programando para Internet » Jquery »

Problema Jquery IE 6

Estas en el tema de Problema Jquery IE 6 en el foro de Jquery en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 01/02/2013, 14:39
 
Fecha de Ingreso: abril-2010
Mensajes: 15
Antigüedad: 14 años
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
  #2 (permalink)  
Antiguo 04/02/2013, 05:40
Avatar de ipraetoriux  
Fecha de Ingreso: abril-2010
Ubicación: ipraetoriux.com
Mensajes: 1.125
Antigüedad: 14 años
Puntos: 155
Respuesta: Problema Jquery IE 6

IE6??????....POR DIOS!!!!!...debe ser una broma, no? jaja

...cambia el .change() por .click(), y si sigue sin funcionar, tal vez debas hacer hacer algún hack para IE tipo asi...y dejar como esta para el resto de los browser...

Código Javascript:
Ver original
  1. if ($.browser.msie) {
  2.   $("#id").click(function() {
  3.     this.blur();
  4.     this.focus();
  5.   });
  6. }
  #3 (permalink)  
Antiguo 04/02/2013, 10:14
 
Fecha de Ingreso: abril-2010
Mensajes: 15
Antigüedad: 14 años
Puntos: 0
Respuesta: Problema Jquery IE 6

ipraetoriux
Muchas gracias por responder.. Lo voy a probar, pero donde decis vos que cambie el change por el click ?, en el que realiza el change al auto seleccionar? es decir aca ?
Código Javascript:
Ver original
  1. if (j.niveles1.length == 1 && (!j.series || j.series.length == 0)) {
  2.                     //$("#Nivel1 option").eq(j.niveles1[0].optionValue).attr("selected", true);
  3.                     $("#Nivel1").val(j.niveles1[0].optionValue);
  4.                     $("select#Nivel1").change();
  5.                    
  6.                    
  7.               }

O en el que capta el change, es decir aca ?

Código Javascript:
Ver original
  1. //Filtar Nivel2 por Nivel1 Seleccionado
  2.     $("select#Nivel1").change(function(){

Saludos y muchas gracias nuevamente
  #4 (permalink)  
Antiguo 04/02/2013, 10:32
 
Fecha de Ingreso: abril-2010
Mensajes: 15
Antigüedad: 14 años
Puntos: 0
Respuesta: Problema Jquery IE 6

Lo probe y no funca, ya que necesito que cuando el registro del select es un solo option necesito se auto seleccione el siguiente nivel, con la funcion change, lo que hacia es que posiciono en el value que quiero y luego aplicaba esta funcion para ejecutar el change, y que el siguiente nivel capte ese change y entre en su propio if.

probe asi.. y no anda..

Código Javascript:
Ver original
  1. if (j.niveles1.length == 1 && (!j.series || j.series.length == 0)) {
  2.                     //$("#Nivel1 option").eq(j.niveles1[0].optionValue).attr("selected", true);
  3.                     $("#Nivel1").val(j.niveles1[0].optionValue).blur;
  4.                     $("#Nivel1").val(j.niveles1[0].optionValue).focus;
  5.                     //$("select#Nivel1").change();
  6.                    
  7.                    
  8.               }
  9.  
  10. $("select#Nivel1").click(function(){
  11.         .........................
  12.         ..........................
  13.         .........................
  14.         ..........................
  15. }

No se si se me explico..

Saludos y gracias
  #5 (permalink)  
Antiguo 04/02/2013, 18:20
Avatar de ipraetoriux  
Fecha de Ingreso: abril-2010
Ubicación: ipraetoriux.com
Mensajes: 1.125
Antigüedad: 14 años
Puntos: 155
Respuesta: Problema Jquery IE 6

..jajajaj en realidad yo no me explico porque andas usando IE6....jajajajjaja, amigo estamos 2013, en lugar de darle bola a las cosas viejas, prestarle atención a lo actual...seguramente hay gente que todavía usa IE6, pero seguramente no pueden acceder al 60%, 70% de los contenidos de internet mas populares...haré unas pruebas con el IE Tester y te aviso
  #6 (permalink)  
Antiguo 04/02/2013, 18:34
 
Fecha de Ingreso: abril-2010
Mensajes: 15
Antigüedad: 14 años
Puntos: 0
Respuesta: Problema Jquery IE 6

Muchas gracias por bancarme..
Te explico como es la movida, es un cliente que es muy grande y tiene pc viejas, se niegan a actualizar y me complican la vida. Por otro lado les sacare la funcionalidad y que se jodan si no encuentro rapido la solucion..

Nuevamente gracias

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:24.