No, quale e` una variabile stringa.

Se il contenuto del campo fosse "pippo", la sintassi sarebbe:
top.NomeFrame.document.formMain.elements["pippo"].src = "immagine.jpg";
naturalmente deve esistere un campo (tipo text) nel form dell'altro frame con nome "pippo" (attributo name del tag <input> ).

Comunque prova a mettere dei controlli: magari il problema e` altrove:

var quale = document.NOMEFORM.NOMECAMPOTEXT.value;
alert("scrivo nel campo "+quale);
top.NomeFrame.document.formMain.elements[quale].src = "immagine.jpg";