Dynamic Javascript

Please support our JavaScript / DHTML / AJAX advertiser: PostgreSQL or MySQL? Compare and contrast the two most popular open source databases
Reply

Join Date: Dec 2006
Posts: 20
Reputation: michael.ngobeni is an unknown quantity at this point 
Solved Threads: 0
michael.ngobeni michael.ngobeni is offline Offline
Newbie Poster

Dynamic Javascript

 
0
  #1
Aug 14th, 2007
Hi guys,

I have a form with many text fields that are created from another program (java)
<input type=text name = 'myname1'>
<input type=text name = 'myname2'>
<input type=text name = 'myname3'>
.
.
.
.
.

and I have a javascript that loops through these text fields

for (var x = 1; x <= numberoftextfields; x++)
{
document.FormName.myname+x+.value = 'Test';

}

This javascript does not work.
Can somebody assist me on this.

Thanks in advance
Reply With Quote Quick reply to this message  
Join Date: Dec 2006
Posts: 645
Reputation: binoj_daniel is an unknown quantity at this point 
Solved Threads: 17
binoj_daniel's Avatar
binoj_daniel binoj_daniel is offline Offline
DaniWeb Expert

Re: Dynamic Javascript

 
0
  #2
Aug 14th, 2007
What script error do you receive? Try placing the myname variable names in another variable before setting the value.
Reply With Quote Quick reply to this message  
Join Date: Aug 2007
Posts: 3
Reputation: Nandem is an unknown quantity at this point 
Solved Threads: 0
Nandem Nandem is offline Offline
Newbie Poster

Re: Dynamic Javascript

 
0
  #3
Aug 14th, 2007
Use ID property from html element to call from javascript

  1. <input type=text name = 'myname1' id='myname1'>
  2. <input type=text name = 'myname2' id='myname2'>
  3. <input type=text name = 'myname3' id='myname3'>
  1. window.onload = function() {
  2. for (var i = 1; i < 4; i++) {
  3. document.getElementById('myname' + i).value = 'hi from for number ' + i;
  4. };
  5. }
Reply With Quote Quick reply to this message  
Join Date: Jun 2006
Posts: 7,609
Reputation: ~s.o.s~ has much to be proud of ~s.o.s~ has much to be proud of ~s.o.s~ has much to be proud of ~s.o.s~ has much to be proud of ~s.o.s~ has much to be proud of ~s.o.s~ has much to be proud of ~s.o.s~ has much to be proud of ~s.o.s~ has much to be proud of ~s.o.s~ has much to be proud of 
Solved Threads: 464
Super Moderator
Featured Poster
~s.o.s~'s Avatar
~s.o.s~ ~s.o.s~ is offline Offline
Failure as a human

Re: Dynamic Javascript

 
0
  #4
Aug 14th, 2007
Or something like this. Works in IE, FF and Opera.

JavaScript / DHTML / AJAX Syntax (Toggle Plain Text)
  1. <html>
  2. <head>
  3. <script type='text/javascript'>
  4. var CONST = 'myname';
  5. function doSomething(frm)
  6. {
  7. for(var i = 1; i < 4; ++i)
  8. {
  9. var txt = CONST + i;
  10. document.frm[txt].value = 'Test';
  11. }
  12. }
  13. </script>
  14. </head>
  15. <body>
  16. <form name="frm">
  17. <input type = 'text' name = 'myname1' /><br />
  18. <input type = 'text' name = 'myname2' /><br />
  19. <input type = 'text' name = 'myname3' /><br />
  20. <input type = 'button' onclick = 'doSomething(this.form);' value = 'Do' />
  21. </form>
  22. </body>
  23. </html>
I don't accept change; I don't deserve to live.
Reply With Quote Quick reply to this message  
Join Date: May 2005
Posts: 182
Reputation: alpha_foobar is an unknown quantity at this point 
Solved Threads: 3
alpha_foobar's Avatar
alpha_foobar alpha_foobar is offline Offline
Junior Poster

Re: Dynamic Javascript

 
0
  #5
Aug 14th, 2007
Originally Posted by michael.ngobeni View Post
Hi guys,
document.FormName.myname+x+.value = 'Test';
The reason your code didn't work is that you were trying to construct the element variable as if it were a string... If you wanted to to it like this, you would need to construct the javascript you wanted to execute as a string and then execute it in an eval function...

i.e.
JavaScript / DHTML / AJAX Syntax (Toggle Plain Text)
  1. var strCommand = "document.FormName.myname" + x + ".value = 'Test';";
  2. eval(strCommand);

However the other solutions recommended are better practice.
Reply With Quote Quick reply to this message  
Join Date: Dec 2006
Posts: 20
Reputation: michael.ngobeni is an unknown quantity at this point 
Solved Threads: 0
michael.ngobeni michael.ngobeni is offline Offline
Newbie Poster

Re: Dynamic Javascript

 
0
  #6
Aug 16th, 2007
I was off sick yesterday and I got to use your suggestions and they work perfect.
Thank you very much.
Reply With Quote Quick reply to this message  
Join Date: Apr 2007
Posts: 437
Reputation: Fungus1487 is on a distinguished road 
Solved Threads: 50
Fungus1487's Avatar
Fungus1487 Fungus1487 is offline Offline
Posting Pro in Training

Re: Dynamic Javascript

 
0
  #7
Aug 16th, 2007
Originally Posted by michael.ngobeni View Post
document.FormName.myname+x+.value = 'Test';
replace with

JavaScript / DHTML / AJAX Syntax (Toggle Plain Text)
  1. if (document.getElementById('myname' + x)) {
  2. document.getElementById('myname' + x).value = 'Test';
  3. }


HMM WHY DID I NOT SEE EVERYONES POSTS 2 MINS AGO ?
DANIWEB THREW A BRAIN FART OR I AM A LEPER
Last edited by Fungus1487; Aug 16th, 2007 at 10:26 am. Reason: LEPRACY
When Autumn Falls [ http://www.whenautumnfalls.co.uk ] &&
Designdotworks [ http://www.designdotworks.co.uk ] Web / Graphic / Software Design
Reply With Quote Quick reply to this message  
Join Date: Feb 2005
Posts: 1,181
Reputation: hollystyles will become famous soon enough hollystyles will become famous soon enough 
Solved Threads: 67
hollystyles's Avatar
hollystyles hollystyles is offline Offline
Veteran Poster

Re: Dynamic Javascript

 
0
  #8
Aug 16th, 2007
I'm surprised no-one thought of:

JavaScript / DHTML / AJAX Syntax (Toggle Plain Text)
  1. var textBoxArray = document.getElementsByTagName("input");
  2.  
  3. for(var i = 0; i < textBoxArray.length; ++i)
  4. {
  5. if(textBoxArray[i].type == "text")
  6. {
  7. textBoxArray[i].value = "test";
  8. }
  9. }

All previous solutions rely on:
a. Knowing how many inputs there are.
b. Knowing the naming convention.

Shoot me down if you like but to me they are code smells.
==========================================
Yadda yadda yadda...
Web junky, fevered monkey
Reply With Quote Quick reply to this message  
Join Date: Dec 2006
Posts: 20
Reputation: michael.ngobeni is an unknown quantity at this point 
Solved Threads: 0
michael.ngobeni michael.ngobeni is offline Offline
Newbie Poster

Re: Dynamic Javascript

 
0
  #9
Aug 16th, 2007
The previous ones are perfect because I have other input textboxes with names like myusname, mypassword, and so on.
So I only wanted textboxes with myname1, myneme2.......

These textboxes are created from an xml file

<person>
<myusername>....</myusername>
<mypassword>....</mypassword>
<myname1>....</myname1>
<myname2>....</myname2>
<myname3>....</myname3>
.
.
.
.
.
</person>
Reply With Quote Quick reply to this message  
Join Date: Feb 2005
Posts: 1,181
Reputation: hollystyles will become famous soon enough hollystyles will become famous soon enough 
Solved Threads: 67
hollystyles's Avatar
hollystyles hollystyles is offline Offline
Veteran Poster

Re: Dynamic Javascript

 
0
  #10
Aug 16th, 2007
Then that is best passed as a parameter IMO.

Just offering a more loosley coupled solution for the benefit of the thread that's all.

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" >
  3. <head>
  4. <title>Untitled Page</title>
  5. <script type="text/javascript">
  6. function setText(txtID, txtValue)
  7. {
  8. var textBoxArray = document.getElementsByTagName("input");
  9.  
  10. for(var i = 0; i < textBoxArray.length; ++i)
  11. {
  12. if(textBoxArray[i].type == "text" && textBoxArray[i].id.substring(0, txtID.length) == txtID)
  13. {
  14. textBoxArray[i].value = txtValue;
  15. }
  16. }
  17. }
  18. </script>
  19. </head>
  20. <body>
  21. <input type="text" id="myname1" /><br />
  22. <input type="text" id="myname2" /><br />
  23. <input type="text" id="myname3" /><br />
  24. <input type="button" onclick="setText('myname', 'test');" value = 'Go' />
  25. </body>
  26. </html>
==========================================
Yadda yadda yadda...
Web junky, fevered monkey
Reply With Quote Quick reply to this message  
Reply

This thread is more than three months old.
Perhaps start a new thread instead?
Message:



Similar Threads
Other Threads in the JavaScript / DHTML / AJAX Forum
Thread Tools Search this Thread



About Us | Contact Us | Advertise | DaniWeb | Acceptable Use Policy | RSS Feed

©2003 - 2009 DaniWeb® LLC