Foros del Web » Programando para Internet » Javascript »

Error con getElementbyID

Estas en el tema de Error con getElementbyID en el foro de Javascript en Foros del Web. Hola amigos: tengo una lista y una función javascript : ----------------------------------------------------------------------- <script language="javascript" type="text/javascript"> function delega2(){ valor=document.getElementById("empresa").options[document.getElementById("empresa").selectedIndex].value; window.alert(valor); } </script> <? echo '<select name=empresa id=empresa ...
  #1 (permalink)  
Antiguo 20/09/2006, 02:53
 
Fecha de Ingreso: diciembre-2001
Ubicación: Bilbao
Mensajes: 182
Antigüedad: 22 años, 4 meses
Puntos: 0
Error con getElementbyID

Hola amigos:

tengo una lista y una función javascript:

-----------------------------------------------------------------------
<script language="javascript" type="text/javascript">
function delega2(){
valor=document.getElementById("empresa").options[document.getElementById("empresa").selectedIndex].value;

window.alert(valor);
}
</script>

<?
echo '<select name=empresa id=empresa class=camposform maxlength=24 onchange="delega2()">
<option value="',$empresa,'" selected>',$empresa,'</option>';
while($resultados = mysql_fetch_array($usuario_consulta)) {
echo '<option value="',$resultados[nombre],'">',$resultados[nombre],'</option>';}

-----------------------------------------------------------------------

Pues bien, cuando selecciono una nueva opción en el select, salta a la función, pero me da un error:

Error: 'document.getElementById(...).options' es nulo o no es un objeto


Alguien sabe qué puede estar pasando?
__________________
Un saludo, y gracias de antemano.

Iker M.
  #2 (permalink)  
Antiguo 20/09/2006, 03:05
Avatar de crcbad  
Fecha de Ingreso: enero-2005
Mensajes: 302
Antigüedad: 19 años, 3 meses
Puntos: 0
Yo me acostumbraría a poner las propiedades de los elementos con comillas, muchas veces suele ser eso, prueba a poner la línea de este modo:

Código PHP:
echo <select name="empresa" id="empresa" class="camposform" maxlength=24 onchange="delega2()"
Haber si asi te funciona, sino, comentalo :)
__________________

:cool: [ http://eruben.sytes.net ] :cool:


Las dos frases que te ayudarán a salir adelante:
  • No hay mujer fea, solo copas de menos. :borracho:
  • Ante la duda, siempre coge la más tetuda. :arriba:
  #3 (permalink)  
Antiguo 20/09/2006, 03:32
Avatar de djreficul  
Fecha de Ingreso: julio-2006
Ubicación: Cork
Mensajes: 672
Antigüedad: 17 años, 10 meses
Puntos: 0
Cita:
Iniciado por pitxulin Ver Mensaje
<?
echo '<select name=empresa id=empresa class=camposform maxlength=24 onchange="delega2()">
<option value="',$empresa,'" selected>',$empresa,'</option>';
while($resultados = mysql_fetch_array($usuario_consulta)) {
echo '<option value="',$resultados[nombre],'">',$resultados[nombre],'</option>';}
Tampoco estaría mal, cosa que ayuda al diseño también, entrar y salir de PHP sólo lo suficiente:

Código PHP:
<select name="empresa" id="empresa" class="camposform" maxlength="24" onchange="delega2()">
<option value="<?php echo $empresa?>" selected><?php echo $empresa?></option>
<?php
while($resultados mysql_fetch_array($usuario_consulta)) {
?>
<option value="<?php echo $resultados['nombre']; ?>"><?php echo $resultados['nombre']; ?></option>
<?php
}
?>
Saludos.
__________________
La muerte es un camino que todos debemos recorrer...
  #4 (permalink)  
Antiguo 20/09/2006, 03:43
 
Fecha de Ingreso: diciembre-2001
Ubicación: Bilbao
Mensajes: 182
Antigüedad: 22 años, 4 meses
Puntos: 0
Me sigue fallando....

__________________
Un saludo, y gracias de antemano.

Iker M.
  #5 (permalink)  
Antiguo 20/09/2006, 03:45
Avatar de ZiTAL  
Fecha de Ingreso: marzo-2004
Ubicación: Bermio (Bizkaia)
Mensajes: 1.545
Antigüedad: 20 años, 2 meses
Puntos: 62
Totalmente de acuerdo con djreficul.

Sobre HTML, mira los estandares de la W3C, te ayudaran a hacer una web de calidad ;)
__________________
http://zital.no-ip.org
____________________

Euskerie ahuen eta bijotzan
  #6 (permalink)  
Antiguo 20/09/2006, 03:48
Avatar de ZiTAL  
Fecha de Ingreso: marzo-2004
Ubicación: Bermio (Bizkaia)
Mensajes: 1.545
Antigüedad: 20 años, 2 meses
Puntos: 62
valor=document.getElementById("empresa").options[document.getElementById("empresa").selectedIndex].value;

no creo que sea asi, ademas solo puedes tener por cada elemento una ID, no tiene sentido tener 2 cosas con la misma ID.
__________________
http://zital.no-ip.org
____________________

Euskerie ahuen eta bijotzan
  #7 (permalink)  
Antiguo 20/09/2006, 04:02
Avatar de djreficul  
Fecha de Ingreso: julio-2006
Ubicación: Cork
Mensajes: 672
Antigüedad: 17 años, 10 meses
Puntos: 0
Otras cosas que pueden ayudarte es pasarle a la función el argumento this.

onchange="delega(this)" de manera que juegas directamente con el campo sin tener que llamarlo con getElementById:

function delega(campo) {
valor=campo.value;
}

o con this.form y obtienes el elemento mediante:

onchange="delega(this.form)"

en la funcion:

function delega(f) {
var valor=f.empresa.value;
}

Saludos.
__________________
La muerte es un camino que todos debemos recorrer...
  #8 (permalink)  
Antiguo 20/09/2006, 04:09
Avatar de ZiTAL  
Fecha de Ingreso: marzo-2004
Ubicación: Bermio (Bizkaia)
Mensajes: 1.545
Antigüedad: 20 años, 2 meses
Puntos: 62
;)

te he echo un programita haber si te vale:

Código HTML:
<html>
<head>
<script type="text/javascript">
 function Aukeratu(a)
  {   
   	var b=a.selectedIndex;
   	var c=a[b].value;
   	alert(c);
  }
</script>
</head>
<body>
<select name="bat" id="bat" onChange="Aukeratu(this)">
<option value="cero">cero</option>
<option value="uno">bat</option>
<option value="dos">bi</option>
</select>
</body>
</html> 
__________________
http://zital.no-ip.org
____________________

Euskerie ahuen eta bijotzan

Última edición por ZiTAL; 20/09/2006 a las 07:09 Razón: cambio document.write por alert
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 22:00.