JavaScript - Bucle para modificar valores de campo de formulario no funciona

   
Vista:

Bucle para modificar valores de campo de formulario no funciona

Publicado por Danielo (2 intervenciones) el 26/01/2016 11:50:23
Hola, buenas.
Tengo un problema con una función, que en principio se ejecuta pero no hace lo que tengo en mente.
Tengo un formulario con dos campos, que saca la información en pantalla en función de los datos de una tabla; es un bucle que por cada registro, llama a un template para mostrar dicha información (por ejemplo, saca tres líneas en pantalla). Los dos campos que tengo definidos en el formulario son los siguientes (uno de ellos una checkbox ( por defecto desmarcada y que solo se debe marcar si el siguiente campo de la fila sufre algún cambio), y el segundo campo el que muestra una cantidad (recupera de base de datos) que es el que me interesa cambiar (que en un futuro quiero controlar un valor mínimo de 0 y un máximo de 9), que toma el valor de la variable $repetido y que lo informo para cada registro que recupero de una tabla;

1
2
3
4
5
6
7
<td class="alt1">
	<input type="checkbox" name="repeatedcards[$card[ref]]" id="repecheck[$card[ref]]" value="$card[ref]"/>
</td>
 
<td class="alt1">
	<input type="text" size="5" tabindex="1" name="cantidad[$card[ref]]" id="repevalor" value="$repetido" maxlength="1">
</td>


en mi caso tengo 3 registros en una tabla que recupero y envío al formulario, mostrándome como resultado final tres filas con los valores 3, 5 y 8 en este segundo campo del formulario,

Estoy intentando hacer un bucle para que al pulsar una opción, me ponga esos tres valores a 0 o 1 (dependiendo del botón que pulse). He creado la siguiente función, siendo "fornname" el nombre del formulario (aunque creo que no lo uso para nada) y "value" al cual le paso 0 o 1 (dependiendo del botón pinchado):

1
2
3
4
5
6
7
8
9
10
11
function cambiar(value)
{
	var campos = document.getElementsByTagName("repevalor");
	var num = campos.length;
	 for(i=0; i<num; i++)
	{
		var field = campos[i];
		field.value=value;
	}
 
}

Pero cuando pincho en los botones (de poner todos a 0 o poner todos a 1) no veo ningún cambio de los valores 3,5 y 8 en pantalla, sigo viendo los mismos valores. La función parece ejecutarse (digo "parece" porque en otras pruebas sobre esta función se me quedaba mostrada en la pantalla la opción selecionada, como si no se ejecutase, y ahora si parece que ejecutase algo)

¿Qué estoy haciendo mal en el bucle? ¿Cómo puedo sustituir el valor original $repetido (recuperado en la primera ejecución) por los valores 0 o 1 cuando tengo la información 3,5 y 8 en pantalla?
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

Bucle para modificar valores de campo de formulario no funciona

Publicado por Danielo (2 intervenciones) el 26/01/2016 12:54:13
Bueno, he encontrado el error, estaba usando TagName en lugar de Name, y con la siguiente función ya lo hace bien:

1
2
3
4
5
6
7
8
9
10
11
function cambiar(value)
{
	var campo = document.getElementsByName("cantidad");
	var num = campo.length;
 
	for(i=0; i<num; i++)
	{
		var valor=document.getElementsByName("cantidad")[i];
		valor.value=value;
	}
}
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