469,602 Members | 2,080 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 469,602 developers. It's quick & easy.

Question on For Loops Using ID Number

Hello,

I posted a question regarding data validation earlier and it worked
great! I have a new question. Is there anyway to cut through all the
if statements and just have a for loop that uses the id numbers
associated with each input. Here's the code I have so far:

<html>
<head>
<script type="text/javascript">

function main(form)
{
if (form.description.value =='')
{
alert("you have not entered in a description");
return false;
}
if (form.awarddate.value =='')
{
alert("you have not entered in an award date2");
return false;
}
if(form.awarddate2.value =='')
{
alert("you have not entered in an award date2");
return false;

return true;
}

</script>
</head>
<body>
<form action="submit.html" method="post" name="input" onsubmit="return
main(this)">
<table>
<tr>
<th>Rick's Test Page<br><br></th>
</tr>
<tr>
<td>Description:<td><input type=text name="description" id=1>
</tr><tr>
<td>Award Date:<td><input type=text name="awarddate" id=2>
</tr><tr>
<td>Award Date 2:<td><input type=text name="awarddate2" id=3>
</tr>
</table>
<input type="submit" value="Submit" class="FormText">
</form>
</body>
</html>

So In this case I'd want to make a for loop that loops from id=1 to
id=3. Is there anyway to do that? Thanks for the help!

Rick

Oct 24 '05 #1
5 1188
"Rick" <RS********@gmail.com> wrote in message
news:11*********************@z14g2000cwz.googlegro ups.com...
Hello,

I posted a question regarding data validation earlier and it worked
great! I have a new question. Is there anyway to cut through all the
if statements and just have a for loop that uses the id numbers
associated with each input. Here's the code I have so far:


[snip]

You're code is missing a "}" before "return true;".

You're missing closing </td> tags.

Don't use "main()" as it's a rserved word (per Evertjan).

Though you can use "document.getElementById()" it isn;t necessary.

The following loops through all form elements and checks all "text"
elements to see if they're blank.

Also, the fields name (name=" is displayed in the alert so it is suggested
that you assign a anme similar to the label they'll see on the page.

<html>
<head>
<script type="text/javascript">
function validate(form) {
var fail = "";
for (i=0; i<form.elements.length; i++) {
if (form.elements[i].type == "text") {
if (form.elements[i].value == "") {
fail += "\n\t" + form.elements[i].name + "";
}
}
}
if (fail != "") {
alert("The following fields are blank:\n" + fail);
return false;
}
return true;
}
</script>
</head>
<body>
<form action="submit.html" method="post"
name="input" onsubmit="return validate(this)">
<table>
<tr>
<th colspan="2">Rick's Test Page<br><br></th>
</tr>
<tr>
<td>Description:</td>
<td><input type=text name="Description" id=1></td>
</tr>
<tr>
<td>Award Date:</td>
<td><input type=text name="Award_Date" id=2></td>
</tr>
<tr>
<td>Award Date 2:</td>
<td> <input type=text name="Award_Date_2" id=3></td>
</tr>
</table>
<input type="submit" value="Submit" class="FormText">
</form>
</body>
</html>
Oct 24 '05 #2
Amazing!

Thank you so much!

Oct 24 '05 #3
McKirahan wrote:
"Rick" <RS********@gmail.com> wrote in message
news:11*********************@z14g2000cwz.googlegro ups.com...
Hello,

I posted a question regarding data validation earlier and it worked
great! I have a new question. Is there anyway to cut through all the
if statements and just have a for loop that uses the id numbers
associated with each input. Here's the code I have so far:

[snip]

You're code is missing a "}" before "return true;".

You're missing closing </td> tags.

Don't use "main()" as it's a rserved word (per Evertjan).

Though you can use "document.getElementById()" it isn;t necessary.

The following loops through all form elements and checks all "text"
elements to see if they're blank.

Also, the fields name (name=" is displayed in the alert so it is suggested
that you assign a anme similar to the label they'll see on the page.


[...]
<td><input type=text name="Description" id=1></td>


And ID's can't start with a number, an id:

"must begin with a letter ([A-Za-z]) and may be followed by any number
of letters, digits ([0-9]), hyphens ("-"), underscores ("_"), colons
(":"), and periods (".")."

<URL:http://www.w3.org/TR/html4/types.html#type-name>

[...]
--
Rob
Oct 24 '05 #4
"RobG" <rg***@iinet.net.au> wrote in message
news:43**********************@per-qv1-newsreader-01.iinet.net.au...

[snip]
<td><input type=text name="Description" id=1></td>


And ID's can't start with a number, an id:

"must begin with a letter ([A-Za-z]) and may be followed by any number
of letters, digits ([0-9]), hyphens ("-"), underscores ("_"), colons
(":"), and periods (".")."

<URL:http://www.w3.org/TR/html4/types.html#type-name>

[...]


Also, "id=" is usually set to the same value as "name=".
Oct 24 '05 #5
McKirahan wrote on 24 okt 2005 in comp.lang.javascript:
Also, "id=" is usually set to the same value as "name=".


Not at all.

In a form, the name goes into the querystring/poststring,
and could be out of control of the programmer on a external site,
the id however could be seralized.

<input name='theName' id='f1'>
<input name='theStreet' id='f2'>
<input name='theTown' id='f3'>
......

for large forms, the clientside code can be much simpler that way:

for (i=1;i<60;i++){
with (document.getElementById('f'+i)){
if (value != defaultValue)
style.backgroundColor='cyan'
else
style.backgroundColor=''
}
}

yes I know, IE only can do:

input { background-color:expression(value!=defaultValue?'cyan':'');}

--
Evertjan.
The Netherlands.
(Replace all crosses with dots in my emailaddress)

Oct 25 '05 #6

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

14 posts views Thread by 2mc | last post: by
5 posts views Thread by John Edwards | last post: by
15 posts views Thread by JustSomeGuy | last post: by
5 posts views Thread by Randall Skelton | last post: by
4 posts views Thread by James | last post: by
10 posts views Thread by Dick Moores | last post: by
5 posts views Thread by Kris Kowal | last post: by
reply views Thread by gheharukoh7 | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.