• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 235
  • Last Modified:

Problem With A Simple Loop

Loops have always given me a problem...I have the following:

<input type="text" name="text2" value="First Name" readonly size="20" style="color: #FFFFFF; border: 1px solid #FFFFFF;border:1px solid #FFFFFF;background-color:#FFFFFF">

<script LANGUAGE="JavaScript">
function ResetDefaultBeneficiaryText() {
array1=new Array(3);
array1[0]="text2";
array1[1]="text3";
array1[2]="text4";
alert("array1 read");

alert("function started")

for (i=0;i<=3;i++) {
  alert("loop started");  
document.forms[0].array1[i].style.fontWeight='normal'
  alert("fontweight");
document.forms[0].array1[i].style.backgroundColor='white'
  alert("BGcolor");
document.forms[0].array1[i].style.color='gray'
  alert("color");
}
}
</SCRIPT>

the routine is triggered by a button...once I get to my first document.forms[0] line, the program stops (know this from the alert lines)...thoughts?

Thanks,
Ron
0
ronaldj
Asked:
ronaldj
1 Solution
 
Jaime OlivaresSoftware ArchitectCommented:
document.forms[0].array1[i].style.fontWeight='normal'

this line (beside the missing ';' ), I think won't work because 'array1' is not a member of document.forms[0]
0
 
ZylochCommented:
Hi ronaldj,

This is a bit confusing. What are you trying to do, and are you showing us the complete code?

Regards,
Zyloch
0
 
ColosseoCommented:
Hi

try changing all the lines that use

document.forms[0].array1[i].style.

to

document.getElementById(array1[i]).style.

You will also need to add an id="text2" as well as name="text2" to each object to ensure cross brower compatiability.

Plus your for loop will get to 3 and your array only goes to 2.

Instead of for (i=0;i<=3;i++)  try either for (i=0;i<3;i++)  or for (i=0;i<=2;i++)

HTH

Scott
0
 
ronaldjAuthor Commented:
Maybe this will clear things up a bit...
the following actual routine gets done what's needed for ClientType 1...

<script LANGUAGE="JavaScript"><!--
function RDBT() {
document.forms[0].text1.style.fontWeight='normal'
document.forms[0].text1.style.backgroundColor='white'
document.forms[0].text1.style.color='gray'
document.forms[0].text2.style.fontWeight='normal'
document.forms[0].text2.style.backgroundColor='white'
document.forms[0].text2.style.color='gray'
document.forms[0].text3.style.fontWeight='normal'
document.forms[0].text3.style.backgroundColor='white'
document.forms[0].text3.style.color='gray'
document.forms[0].text4.style.fontWeight='normal'
document.forms[0].text4.style.backgroundColor='white'
document.forms[0].text4.style.color='gray'
document.forms[0].text5.style.fontWeight='normal'
document.forms[0].text5.style.backgroundColor='white'
document.forms[0].text5.style.color='gray'
document.forms[0].text6.style.fontWeight='normal'
document.forms[0].text6.style.backgroundColor='white'
document.forms[0].text6.style.color='gray'
}
//--></SCRIPT>

however, there are also ClientTypes 2...8
thought a loop would ease the burden of Copy/Edit/Paste and be more efficient.

Ron
0
 
ZylochCommented:
Ah I see. You mean like this:

document.forms[0].elements[array1[i]].style.fontWeight='normal'
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

The 14th Annual Expert Award Winners

The results are in! Meet the top members of our 2017 Expert Awards. Congratulations to all who qualified!

Tackle projects and never again get stuck behind a technical roadblock.
Join Now