Tengo el siguiente código:
function Evaluar1(radioelegido, cont) {
var z = cont;
var obj = new Array();
// … y otras variables que se usan más adelante
arreglo = radioelegido.split(",");
for (j=0; j<=z-1; j++) {
obj[j] = eval("document.form1." + arreglo[j]);
}
/* … y sigue aquí un código para ver si el usuario eligió o no algún elemento radio levantado por la función eval (que estoy seguro funciona correctamente puesto que lo he probado en otras oportunidades) */
}
Los elementos que estoy evaluando en el formulario son de tipo Radio. El código anterior me genera el error “Se esperaba “;”” en la línea coloreada en rojo. Es decir, no está realizando la función eval de cada grupo de radios (cada conjunto radio tiene 3 elementos). Otra cosa a tener en cuenta, y de allí que esté realizando el código de esta manera, es que cada conjunto radio de 3 elementos cada uno tiene un nombre propio, en este caso, un número de identificación correspondiente a un código de una base de datos. Además los conjuntos radios se generan dinámicamente en el formulario, dependiendo de las opciones que haya elegido el usuario. Un ejemplo: Si el usuario eligió 5 registros, se listarán 5 conjuntos de radios de 3 elementos de posible selección para cada uno de ellos. La función Javascript por lo tanto recibe como parámetros tanto la cantidad de registros listados, como así también una cadena de texto (radioelegido), en el cual están concatenados los nombres de cada conjunto de radios del formulario listado, y se ejecutará al presionar el botón Enviar el formulario, mostrando el mensaje de error “No se han realizado cambios” en caso el usuario no haya hecho clic en ninguna opción de los radios. Mi pregunta es: ¿Por qué me genera el error “Se esperaba “;”” como ya lo comenté? ¿Qué estoy haciendo mal en la función eval() para que reconozca a cada conjunto de radios? Un saludo.