Tengo el siguiente problema y la verdad estoy algo bloqueada.
Tengo un formulario simple en ASP que muestra el contenido de una tabla en una serie de campos input:
Cita:
Como pueden ver en negrita, he asignado un nombre único a un campo en particular del trío que uso. Esto porque si alguien modifica el contenido de dicho campo se dispara con el evento onChange una rutina en javascript que debe actualizar el listado por completo (en realidad sólo debería de actualizar el campo pero eso es con Ajax y en esta etapa sólo necesito hacerlo a la manera tradicional).<%
Tabla1.Open Temp, Conexion
arrDBData = Tabla1.GetRows()
Tabla1.Close
iRecFirst = LBound(arrDBData, 2)
iRecLast = UBound(arrDBData, 2)
For J = iRecFirst To iRecLast
%>
<tr>
<td><a href="debitos.asp?accion=eliminar&id=<%= arrDBData(0,J) %>"><b>X</b></a></td>
<td style="padding: 1px;"><input type="text" size="5" name="cuenta" value="<%= arrDBData(3,J) %>" class="texto_amarillo" readonly></td>
<td style="padding: 1px;"><input type="text" size="40" name="nombre" value="<%= arrDBData(4,J) %>" class="texto_amarillo" readonly></td>
<td style="padding: 1px;"><input type="text" size="12" name="monto<%= arrDBData(0,J) %>" value="<%= FormatNumber(arrDBData(5,J),2) %>" class="texto_amarillo" onChange="javascript:actualizar(<%= arrDBData(0,J) %>);"></td>
</tr>
<%
Next
%>
Tabla1.Open Temp, Conexion
arrDBData = Tabla1.GetRows()
Tabla1.Close
iRecFirst = LBound(arrDBData, 2)
iRecLast = UBound(arrDBData, 2)
For J = iRecFirst To iRecLast
%>
<tr>
<td><a href="debitos.asp?accion=eliminar&id=<%= arrDBData(0,J) %>"><b>X</b></a></td>
<td style="padding: 1px;"><input type="text" size="5" name="cuenta" value="<%= arrDBData(3,J) %>" class="texto_amarillo" readonly></td>
<td style="padding: 1px;"><input type="text" size="40" name="nombre" value="<%= arrDBData(4,J) %>" class="texto_amarillo" readonly></td>
<td style="padding: 1px;"><input type="text" size="12" name="monto<%= arrDBData(0,J) %>" value="<%= FormatNumber(arrDBData(5,J),2) %>" class="texto_amarillo" onChange="javascript:actualizar(<%= arrDBData(0,J) %>);"></td>
</tr>
<%
Next
%>
El problema es que no logro capturar el valor de ese campo. Verán, se que para capturar un dato se procede algo como esto:
var variable=document.nombre_del_formulario.nombre_del _campo. value;
Y he ahí el problema, pues el nombre_del_campo es único, no hay 2 iguales. Lo que había pensado es algo como esto:
Primero crear un evento onChange que llame a la función actualizar:
onChange="actualizar(<%= arrDBData(3,J) %>)";. El dato que paso es el identificador único para el registro seleccionado. No hay 2 identificadores iguales.
Segundo, la función actualizar debería hacer algo como esto:
function actualizar(id)
{
//el nombre del campo sería monto1, monto2, monto3.......monto9999
//según el id que se haya pasado
var nombreDelCampo=monto + id;
var nuevoMonto=document.nombre_del_formulario.nombreDe lCampo.value;
//llamamos a la rutina asp para actualizar
document.location.href="actualizar.asp?id="+id+"&m onto="+nuevoMonto;
}
Pero obviamente no funciona. Y por eso estoy aquí búscando apoyo.
¿Alguien tiene alguna idea, sugerencia o solución a mi consulta?
Espero haberme expresado bien y dejado bien en claro el tenor de mi consulta.
Un saludo desde el Perú
MC