Foros del Web » Programando para Internet » Javascript »

getElementsByName en IE

Estas en el tema de getElementsByName en IE en el foro de Javascript en Foros del Web. He leído en diversos sitios que todas las versiones de IE se llevan mal con la propiedad getElementsByName. La cuestión es que necesito sí o ...
  #1 (permalink)  
Antiguo 12/05/2009, 02:46
 
Fecha de Ingreso: abril-2009
Mensajes: 17
Antigüedad: 15 años
Puntos: 0
getElementsByName en IE

He leído en diversos sitios que todas las versiones de IE se llevan mal con la propiedad getElementsByName.
La cuestión es que necesito sí o sí que funcione sobre IE.

Pongo un ejemplo resumido de lo que tengo y lo que necesito:
Tengo un campo de texto con name='prueba' y un alert que muestre ese valor a través del name (usar el ID NO me vale).

Simple, ¿no? A ver si me pueden ayudar.

Gracias ;)
  #2 (permalink)  
Antiguo 12/05/2009, 03:48
Avatar de AnesGy  
Fecha de Ingreso: mayo-2009
Mensajes: 518
Antigüedad: 14 años, 11 meses
Puntos: 19
Respuesta: getElementsByName en IE

Lo has probado y no te funciona? A mi me suele funcionar. Si no usa Id, que no te vale, usa Id.

Si tienes 100 euros y te quieres comprar un diamante de 1000 que haces, comprarte un diamante de 100, que no te vale, pues te quedas sin diamante.
  #3 (permalink)  
Antiguo 12/05/2009, 03:58
 
Fecha de Ingreso: abril-2009
Mensajes: 17
Antigüedad: 15 años
Puntos: 0
Respuesta: getElementsByName en IE

Me funciona perfectamente en firefox, pero en IE no.

El name lo necesito por este hecho:

1.php:
Código PHP:
<div id='tipo' style='width:120px; height:25px;'></div>
     <
script src='combobox/tipo.js'></script> 
tipo.js:
Código PHP:
        var tipovar=new dhtmlXCombo("tipo","tiponame",120);
        
tipovar.addOption([
        [
'prueba1','Prueba 1'],
        [
'prueba2','Prueba 2']
        ]);
        
tipovar.enableFilteringMode(true); 
El name de la caja sería "tiponame"y el ID he de suponer que es "tipo". Pero claro, si uso el ID me manda valor undefined siempre. En cambio, con getElementsByName("tiponame")[0].value me manda el valor correcto (pero sólo funciona en firefox, no en IE)

Por eso necesito usar el name. Si hay una solución posible, lo agradecería.
  #4 (permalink)  
Antiguo 12/05/2009, 04:51
Avatar de AnesGy  
Fecha de Ingreso: mayo-2009
Mensajes: 518
Antigüedad: 14 años, 11 meses
Puntos: 19
Respuesta: getElementsByName en IE

He mirado la referencia y el primer parámetro es el ID, asi que no es eso. Luego, lo que me pregunto es que si el primer parámetro es el ID y tu le das la misma ID que el DIV de más arriba, eso no genera incompatibilidad?

Luego me percaté de que no, necesitas el div antes. Asi que sigo buscando respuesta.

Si tienes un ejemplo online de tu problema me vendría bien.

Última edición por AnesGy; 12/05/2009 a las 04:56
  #5 (permalink)  
Antiguo 12/05/2009, 05:04
 
Fecha de Ingreso: abril-2009
Mensajes: 17
Antigüedad: 15 años
Puntos: 0
Respuesta: getElementsByName en IE

El ID del div es "tipo" porque en el script una de los parámetros es "tipo":

Código PHP:
var tipovar=new dhtmlXCombo("tipo","tiponame",120); 
Podrían llamarse cualquier otra cosa siempre que se llamen igual. Si tienen distinto nombre no se muestra la caja del select.


"tipovar" no lo uso porque ese script lo único que hace es dar las posibilidades del selector. Tengo otro script que es el que muestra en un alert el valor del select en cuestión. Lo de el alert es lo de menos, lo que quiero es ver que valor devuelve. El script es para, dependiendo del valor del select, conecte con la base de datos y muestre en otro campo de texto el resultado de una consulta (cosa que funciona bien en firefox, cómo no, pero no en IE porque no puedo coger el valor del select).
La función se ejecuta al hacer onclick en un botón:

Código PHP:
var contenido=document.getElementById('tipo').value;
var 
contenido2=document.getElementsByName('tiponame')[0].value;
var 
contenido3=document.getElementsByName('tiponame').value
contenido valdría "undefined"
contenido2 me dice que es nulo o no es un objeto
contenido3 valdría "undefined"


Y no sé qué más decir, creo que están todos los datos y no me puedo explicar mejor :S

Gracias por molestarte en contestar

PD: No tengo ejemplo online, trabajo de forma local, lo siento :( De todas formas, está todo el código, y si no lo está, lo he explicado "verbalmente". Si no te haces una idea, lo pego todo y se acabó
  #6 (permalink)  
Antiguo 12/05/2009, 05:05
Avatar de AnesGy  
Fecha de Ingreso: mayo-2009
Mensajes: 518
Antigüedad: 14 años, 11 meses
Puntos: 19
Respuesta: getElementsByName en IE

En IE si el atributo NAME no está en un input no funciona.

Sigo buscando a ver que se puede hacer.

Ahora que me acuerdo, si no tienes ningun combo más puedes buscar esto


Código javascript:
Ver original
  1. var m = document.getElementsByTagName("div");
  2. var mycontrol;
  3. for(i=0;i<m.length;i++){
  4.  if (m[i].className == "nombre de la clase de ese tipo de controles"){
  5.   mycontrol = m[i];
  6.  }
  7. }

Última edición por AnesGy; 12/05/2009 a las 05:13
  #7 (permalink)  
Antiguo 12/05/2009, 05:23
 
Fecha de Ingreso: abril-2009
Mensajes: 17
Antigüedad: 15 años
Puntos: 0
Respuesta: getElementsByName en IE

Esa es la única solución que he visto en diversos foros, pero tengo el problema que no es sólo un combo.

Al final lo que haré será cambiar de combo fijándome que se pueda usar la ID para evitar problemas. Si me decidí por dhtmlxcombo es porque tiene la típica flechita de desplegable, algo que me exigen que sea así. O bien, que al hacer click en el campo se desplieguen todas las posibilidades. Eso no lo vi en ningún otro combo. Y como mis conocimiento de programación no llegan como para implementar eso en cualquier otro combo, pues me decidí por dhtmlxcombo que me daba todo lo que quería.
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 03:20.