independientemente del lado que tomo abimaelrc, la sintaxis esta mal escrita. un string simplemente hace nada, es solo eso, un string. me imagino que tu idea de usar string vino como necesidad de integrar una variable y que fuera parte de la expresion. hay quienes que por lo general hacen eso y luego usan
eval para considerar el string como una sentencia javascript. funciona, aunque tiene una gran fama y critica de ser la peor opcion. eso no lo voy a discutir aqui...
la mejor opcion es variar la sintaxis: en lugar de usar el operador de punto para acceder a propiedades de un objeto, utilizamos corchetes ([]) y dentro de este escribimos cualquier expresion que evalue al nombre de alguna propiedad u objeto. por ejemplo en tu caso "formulario" + (i-1) debe evaluar al nombre de uno de los formularios. por tanto, la sintaxis se traduce a:
Código:
document["formulario" + (i-1)].action;
fijate que no hay un punto entre
document y el corchete. sin embargo, luego del corchete de cierre tienes que utilizar punto seguido de la propiedad o metodo que fueras a usar.