Strona 1 z 1

dynamiczny dostęp do obiektów formularza

PostNapisane: 22 września 2004, o 13:23
przez engine
ufff.

no szlag by to trafił ;)

siedzę już 2 godziny i kombinuję - i nic

mam formularz z czterema polami tekstowymi zawierajacymi wartosci liczbowe
pola mają wyłączoną możliwość edycji

pola źródłowe nazywają się (name):
pz_1 wartosc pola to 100
pz_2 wartosc pola to 200

pola docelowe nazywają się (name):
pd_1
pd_2


jest jeszcze pole tektowe - edycyjne do wpisywania wartości
nazywa się (name):
pe

po nacisnieciu buttona wywolywana jest funkcja, ktora
ma za zadanie wykonać prostą operację matematyczną
odjęcie od wartości pól źródłowych wartości pola edycyjnego i wstawienie je
do pól docelowych

czyli w skrócie:
pd_1=pz_1 - pe
pd_2=pz_2 - pe

nie mam problemu jak wszystko jest wpisane na stałe
ale ponieważ pól będzie więcej, a działanie bardziej skomplikowane
chciałbym uzyć pętli for, która wykona zmianę dla wszystkich pól
czyli:
taki - niewpelni javascriptowy kod

for ($i=1; $i<=10; $i++)
{
document.form["formularz"].pd_$i.value= document.form["formularz"].zd_$i.value - document.form["formularz"].pe.value
}

i wsio

probowalem z eval, ale nie dziala
co trzeba zrobić, aby działało ?

PostNapisane: 22 września 2004, o 21:41
przez lockoom
Tak na pierwszy rzut oka: w JS zmiennych nie poprzedza sie "$".

PostNapisane: 23 września 2004, o 06:37
przez engine
wiem, że zmienne w JS są bez $

przysiedzialem i jest rozwiazanie:

function zmien_calosc()
{
var ile=document.forms['export'].ilosc.value;
for (var i=1; i<=ile; i++)
{
var ob_d = document.forms['export'].elements["md_num_" + i];
var ob_z = document.forms['export'].elements["mz_num_" + i];
var ob_e = document.forms['export'].elements["mz_num"];
ob_d.value = ob_z.value - ob_e.value;
}

prawda ze proste
}