JavaScript - getElementById

   
Vista:

getElementById

Publicado por tomás (4 intervenciones) el 28/11/2013 19:28:19
Hola

Tengo un código de javascript
Es para comprobar si una variable de javascxript está en un array
La variable representa a un color , y el array a una lista de colores ,

El problema lo tengo en una línea de código , que es la siguiente :

var color=document.getElementById('campodetexto').value;

Si en lugar de recoger la variable mediante el document.getElementById , pongo el valor directamente ,
var color='rojo' ; sí funciona , pero escribiéndolo así :var color=document.getElementById('campodetexto').value , no funciona . Y necesito recoger el valor del campo de texto

Os pongo el código debajo , si sabéis cuál puede ser el problema , os agradecería que me lo comunicárais

Saludos

------------------------
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<script language="javascript">
var color=document.getElementById('campodetexto').value; // aquí estás el problema , 
//si pongo var color='rojo' ; sí funciona 
 
function colores(color){
	var a = ['rojo', 'verde', 'azul', 'amarillo'];
	for(i=0;i< a.length;i++) {
		if(color == a[i]){
			alert("El color está en la lista , el color es : "+color+"\nEn la posicion: "+i);
		}
	}
}
</script>
 
<html>
</head>
<body>
 
<form action="">
<input type="text" id="campodetexto" value="rojo"/>
</form>
 
<a href =javascript:; onclick="javascript:colores(color)" > Comprobar si el color indicado está en la lista </a><br/>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

getElementById

Publicado por xve (1595 intervenciones) el 28/11/2013 21:55:05
Hola Tomás, en tu código tienes un problema de carga... cuando el javascript intenta coger el valor del id campodetexto, este todavía no existe en la pagina... por lo tanto falla.

Prueba a ponerlo después del input... algo así:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<script language="javascript">
function colores(color){
    var a = ['rojo', 'verde', 'azul', 'amarillo'];
    for(i=0;i< a.length;i++) {
        if(color == a[i]){
            alert("El color está en la lista , el color es : "+color+"\nEn la posicion: "+i);
        }
    }
}
</script>
 
<html>
</head>
<body>
 
<form action="">
<input type="text" id="campodetexto" value="rojo"/>
</form>
 
<script type="text/javascript">
    var color=document.getElementById('campodetexto').value; // aquí estás el problema , 
</script>
<a href =javascript:; onclick="javascript:colores(color)" > Comprobar si el color indicado está en la lista</a>
<br/>

Coméntanos, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

getElementById

Publicado por Tomás tlibano@yahoo.es (4 intervenciones) el 29/11/2013 18:57:42
Hola XVE

Gracias por la respuesta

He probado el código , funciona si en el value pongo predeterminado el color -- value="rojo"--
--------------
<form action="">
<input type="text" id="campodetexto" value="rojo"/>
</form>
-----------------

Pero no funciona si dejo el value en blanco , para poder llenarlo escribiendo en el campo de texto ; no funciona si pongo --value=""-- , y escribo el valor en el campo de texto ,
Si quiero escribir un color en el campo de texto , y que se recoja el valor mediante --
var color=document.getElementById('campodetexto').value;-- , solo recoge el valor si está ya puesto en el value
por ejemplo -- value="rojo"-- , pero si dejo el value en blanco -- value=""-- , para escribir el color en el campo de texto , entonces no funciona
Sabes cuál puede ser el problema ?

También he probado poniendo los colores en un combo , en un campo de lista , en lugar de un campo de texto , y mediante el var color=document.getElementById('IdSelectOption').value; no selecciona el valor aunque pongo esto último debajo del combo
Si tienes idea de qué puede estar fallando , por favor , indícamelo

Salusdos

Tomás
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar