|
|
|
|
||||||
![]() |
|
|
LinkBack | Outils de la discussion |
|
|
#1 |
|
Messages: n/a
Hébergeur: |
Hi everyone,
I have a simple form that generated another set of forms depending on how many customers are entered. First form: how many customers? Second file: If the answer is 2, it generated 2 forms with exactly the same fields. It's stored in an array. My question is how to have javascript read the values in that array. This is the error I get when running the program. Error: document.getElementsByName("num1[]")[j] has no properties. Here's an example of the second form: {section name=ill start=1 loop=$customer+1 step=1} <table border = "1"> <tr> <td>Number 1:</td><td><input type="text" name="num1[{$smarty.section.ill.index}]" /></td></tr> <tr><td>Number 2:</td><td><input type="text" name="num2[{$smarty.section.ill.index}]" /></td></tr> <tr><td>Total:</td><td><input type="text" name="total[{$smarty.section.ill.index}]"onBlur = "mytest()" /></td></tr> </table> {/section} And here's the javascript: function mytest() { for (j = 0; j <= customer; j++) { var number1= document.getElementsByName("num1[]")[j].value; var number2 = document.getElementsByName("num2[]")[j].value; number1 = Number(number1); number2 = Number(number2); var result = number1 + number2; document.getElementsByName("total[]")[j].value = result; } } Thank you for your , ~alyssa |
|
|
|
#2 |
|
Messages: n/a
Hébergeur: |
> function mytest() > { > for (j = 0; j <= customer; j++) > { > var number1= document.getElementsByName("num1[]")[j].value; > var number2 = document.getElementsByName("num2[]")[j].value; > number1 = Number(number1); > number2 = Number(number2); > var result = number1 + number2; > document.getElementsByName("total[]")[j].value = result; > } > } not tested! try: <form name="test" id="test" .... > .... <td>Number 1:</td><td><input type="text" name="num[{$smarty.section.ill.index}]" id="num[{$smarty.section.ill.index}]" /></td></tr> <tr><td>Number 2:</td><td><input type="text" name="num[{$smarty.section.ill.index}]" id="num[{$smarty.section.ill.index}]"/></td></tr> <tr><td>Total:</td><td><input type="text" name="total[{$smarty.section.ill.index}]" onBlur = "mytest()" /></td></tr> .... .... and function mytest() { t = document.getElementById(test); for (j=0; j<=sizeof(t.num); j++) { number1 = Number(t.num[j].value); number2 = Number(t.num[j+1].value); result = number1 + number2; t.total[j].value = result; } } maybe some little modification.... and it will be work for u ![]() no tested! |
|
|
|
#3 |
|
Messages: n/a
Hébergeur: |
Alyssa Phan wrote:
> Hi everyone, > > I have a simple form that generated another set of forms depending on how many customers are entered. > > First form: how many customers? > > Second file: If the answer is 2, it generated 2 forms with exactly the same fields. It's stored in an array. > My question is how to have javascript read the values in that array. This is the error I get when running the program. > Error: document.getElementsByName("num1[]")[j] has no properties. > > Here's an example of the second form: > {section name=ill start=1 loop=$customer+1 step=1} > <table border = "1"> > <tr> > <td>Number 1:</td><td><input type="text" name="num1[{$smarty.section.ill.index}]" /></td></tr> > <tr><td>Number 2:</td><td><input type="text" name="num2[{$smarty.section.ill.index}]" /></td></tr> > <tr><td>Total:</td><td><input type="text" name="total[{$smarty.section.ill.index}]"onBlur = "mytest()" /></td></tr> > </table> > {/section} > > And here's the javascript: > function mytest() > { > for (j = 0; j <= customer; j++) > { > var number1= document.getElementsByName("num1[]")[j].value; try something like: var number1= document.getElementsByName('num1['+j+']').value; > var number2 = document.getElementsByName("num2[]")[j].value; > number1 = Number(number1); > number2 = Number(number2); > var result = number1 + number2; > document.getElementsByName("total[]")[j].value = result; > } > } > Thank you for your , > ~alyssa > |
|
![]() |
| Outils de la discussion | |
|
|