Foros del Web » Programando para Internet » Javascript »

getElementById is not a function

Estas en el tema de getElementById is not a function en el foro de Javascript en Foros del Web. Buenas: Pues eso, he puesto un onBlur en una caja de texto que llame a una función (mostrar() ), y al poner el foco en ...
  #1 (permalink)  
Antiguo 16/02/2010, 17:25
Avatar de Alun  
Fecha de Ingreso: diciembre-2009
Ubicación: Liverpool
Mensajes: 140
Antigüedad: 14 años, 11 meses
Puntos: 4
getElementById is not a function

Buenas:

Pues eso, he puesto un onBlur en una caja de texto que llame a una función (mostrar() ), y al poner el foco en esa caja, la consola de errores me dice que document.getElementById no es una función:

Código Javascript:
Ver original
  1. <head>
  2. <script type="text/javascript">
  3.  
  4. function mostrar(){
  5. document.getElementById('botones').style.display = 'block';
  6.  
  7. </script>
  8. </head>

Código HTML:
Ver original
  1. <input type="password" id="pwd" name="clave" onBlur="mostrar();">
  2. <div align=center id="botones" name="capabotones" style="font:normal 8px/4px verdana;display:none;"></div>
  3. </body>


Tampoco es un script muy complicado, ¿por qué pasa?

Gracias
  #2 (permalink)  
Antiguo 16/02/2010, 17:41
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 6 meses
Puntos: 1485
Respuesta: getElementById is not a function

no se si fue error al copiarlo pero te falta cerrar el cuerpo de la funcion.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 16/02/2010, 17:42
Avatar de Alun  
Fecha de Ingreso: diciembre-2009
Ubicación: Liverpool
Mensajes: 140
Antigüedad: 14 años, 11 meses
Puntos: 4
Respuesta: getElementById is not a function

Sí, fue un error al copiar, mea culpa, en el codigo está cerrado
  #4 (permalink)  
Antiguo 16/02/2010, 17:44
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 6 meses
Puntos: 1485
Respuesta: getElementById is not a function

pues a mi me funciona bien con el cuerpo cerrado. debe ser otra cosa.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #5 (permalink)  
Antiguo 16/02/2010, 18:00
Avatar de Alun  
Fecha de Ingreso: diciembre-2009
Ubicación: Liverpool
Mensajes: 140
Antigüedad: 14 años, 11 meses
Puntos: 4
Respuesta: getElementById is not a function

El código es más largo que eso, te lo pego entero, aunque el resto creo que funciona bien:
Código Javascript:
Ver original
  1. <html>
  2.     <head><title></title>
  3.         <link rel="stylesheet" type="text/css" href="../styles/stylesheet.css">
  4.         <script type="text/javascript">
  5.             <!--
  6. /*ESTA FUNCIÓN COMPRUEBA LOS CAMPOS USER Y PWD*/
  7.             function comp(){
  8.                 //comprueba si la longitud de la caja user es igual a 0 caracteres, alerta en caso de que lo sea, devuelve el foco al campo user y devuelve FALSE
  9.                 if(document.getElementById('user').value.length == 0){
  10.                     alert('Falta el nombre');
  11.                     document.getElementById('user').focus();
  12.                     return false;}
  13.                     //comprueba que la longitud supere los 4 caracteres, alerta en caso contrario, devuelve el foco al campo user y devuelve FALSE
  14.                     else if(document.getElementById('user').value.length < 4){
  15.                         alert('El nombre no coincide: debe ser superior a 4 caracteres');
  16.                         document.getElementById('user').focus();
  17.                         return false;}
  18.                             //comprueba si la longitud de la caja pwd es igual a 0 caracteres, alerta de que falta la contraseña, devuelve el foco al campo y devuelve FALSE
  19.                             else if(document.getElementById('pwd').value.length == 0){
  20.                                 alert('Falta la contraseña');
  21.                                 document.getElementById('pwd').focus();
  22.                                 return false;}
  23.                                 //comprueba si la longitud de pwd supera los 4 caracteres, alerta si no es así, devuelve el foco al campo y devuelve FALSE
  24.                                 else if(document.getElementById('pwd').value.length < 4){
  25.                                     alert('La contraseña no coincide: debe ser superior a 4 caracteres');
  26.                                     document.getElementById('pwd').focus();
  27.                                     return false;}
  28.                                         //si todo está completo, devuelve TRUE
  29.                                         else{return true;}}
  30.                
  31.  
  32.             //-->
  33.         </script>
  34.         <script type="text/javascript">
  35.             <!--
  36.  
  37.             //esta variable contendrá los caracteres de la contraseña
  38.             var contrasena="";
  39.             //este array contiene el teclado
  40.             var TNumeros=new Array ("1","2","3","4","5","6","7","8","9","0","<<");
  41.            
  42. /*Esta función añade la contraseña a su campo correspondiente*/
  43.             function anadir(letra){
  44.                 //se añade el valor del campo pwd a la variable contrasena
  45.                 contrasena=document.getElementById('pwd').value;
  46.                 //este IF se encarga de borrar la última letra si la tecla pulsada es Backward
  47.                 if(tecla=="<<"){
  48.                     //se define una variable y se le asigna el valor de contrasena menos 1
  49.                     var longPass = contrasena.length - 1;
  50.                     //se asigna a contrasena el valor que hay entre 0 y la longitud de longPass
  51.                     contrasena = contrasena.substring(0, longPass);}
  52.                     //si la tecla pulsada es otra
  53.                     else{
  54.                         //se le pasa a contrasena su valor más el de la tecla pulsada
  55.                         contrasena = contrasena + letra;}
  56.                 //y se le pasa esta variable al campo pwd
  57.                 document.getElementById('pwd').value = contrasena;}
  58.                
  59. /*Esta función muestra el teclado*/
  60.                
  61.                 /*Esta es la línea que me da error*/
  62.                 function mostrar(){
  63.                     document.getElemenById('botones').style.display = 'Block';}
  64.                 /*Hasta aquí*/
  65.                
  66.             //-->
  67.         </script>
  68.     </head>
  69.     <body class="bodies">
  70.         <center><font class="font">
  71.                 <p class="encabezados"><input type="text" id="titulo" value="DIRECCIONES">DIRECCIONES</p>
  72.                 <FORM ACTION="menu.html" method="post" enctype="text/plain" onSubmit="return comp(this);">
  73.                     <p id="restricted">!Área restringida!</p>
  74.                     <p id="textform">Para ver esta página, necesitarás registrarte o identificarte como usuario.</p>
  75.                     <table class="tablas">
  76.                         <tr>
  77.                             <td class="derecha">USUARIO</td>
  78.                             <td class="izquierda"><input type="text" id="user" name="login"></td>
  79.                         </tr>
  80.                         <tr>
  81.                             <td class="izquierda">PASSWORD</td>
  82.                             <td class="derecha"><INPUT TYPE="PASSWORD" id="pwd" NAME="CLAVE" onBlur="mostrar();"></td>
  83.                         </tr>
  84.                     </table>
  85.                     <input TYPE="SUBMIT" VALUE="Enviar" class="send" id="enviar">
  86.                     <input type="reset" Value="Borrar" class="reset" id="resetear">
  87.                 </form>
  88.                 <div align=center id="botones" name="capabotones" style="font:normal 8px/4px verdana;display:none;"></div>
  89.                 <script type="text/javascript">
  90.                     <!--
  91.                     /*Este script pintará el teclado*/
  92.                    
  93.                     //esta variable contendrá el HTML de cada tecla
  94.                     var teclas = "";
  95.                     //esta bucle pinta los botones
  96.                     for (a=0;a<TNumeros.length;a++){
  97.                         //se añade un botón por cada tecla
  98.                         teclas = teclas + '<input style="width:20px;" type="Button" value="'+TNumeros[a]+'" onclick="anadir("'+TNumeros[a]+'")>&nbsp;';}
  99.                     //se pinta en la capa botones el contenido del teclado más la tecla de borrado más la tecla de espacio
  100.                     document.getElementById('botones').innerHTML=teclas + '<input style="width:20px;" alt="Borrar" type="Button" value="&laquo;" onClick="anadir("<<")"><br><br><input style="width:205px;height:22px;" type="Button" value="espacio" onclick="anadir("*");">';
  101.                        
  102.                        
  103.                     //-->
  104.                 </script>
  105.                     <!--<a id="pregunta" href=javascript:mostrar()>Mostrar teclado</a><br>-->
  106.             </font></center>
  107.     </body>
  108. </html>
  #6 (permalink)  
Antiguo 16/02/2010, 21:40
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 6 meses
Puntos: 1485
Respuesta: getElementById is not a function

vaya, que cosa mas tonta y confusa. pero no te preocupes, le pasa a cualquiera. ciertamente getElemenById no existe. cuando mostraste la porcion por primera vez lo escribistes bien. pero en tu codigo claramente esta mal. fijate que te falto la t, getElementById.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #7 (permalink)  
Antiguo 17/02/2010, 03:53
Avatar de Alun  
Fecha de Ingreso: diciembre-2009
Ubicación: Liverpool
Mensajes: 140
Antigüedad: 14 años, 11 meses
Puntos: 4
Respuesta: getElementById is not a function

Ostras.... Vaya, muchas gracias... aún debo coger algo de soltura al escribir estas cosas.
  #8 (permalink)  
Antiguo 17/02/2010, 03:58
Avatar de Alun  
Fecha de Ingreso: diciembre-2009
Ubicación: Liverpool
Mensajes: 140
Antigüedad: 14 años, 11 meses
Puntos: 4
Respuesta: getElementById is not a function

Ups, acabo de volver a probarlo, y ahora esa parte va bien, pero al intentar colocar un número en la caja de texto (supongo que lo habrás visto ya, pero por si no, es un teclado numerico que coloca el valor del botón pulsado en un campo password), la consola me dice syntax error, me indica que el fallo está en la declaración de la función (anadir( ), y al abrir el código para ver la línea me dice que está en la primera (<html>).

Ya me ha pasado más veces que haya algún fallo y me indique que es en la primera línea. ¿Por qué mozilla dice eso a veces? Y más importante, ¿cómo se evita/soluciona?

Muchas gracias.
  #9 (permalink)  
Antiguo 17/02/2010, 15:06
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 6 meses
Puntos: 1485
Respuesta: getElementById is not a function

fijate que tienes un contenido generado, es decir los botones. en la parte donde agregas el evento onclick tienes problema con las comillas. si te fijas en el contenido generado, onclick aparece asi onclick="anadir(". o sea, la expresion no esta correctamente generada por problema de las comillas.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Etiquetas: function, getelementbyid
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 12:13.