Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: js i tablice w nazwach
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
misiek172
Witam.

Mam nastepujący problem:

Mam inputy:
<input type=text name=cos[0]>
<input type=text name=cos[1]>
<input type=text name=cos[2]>
<input type=text name=cos[3]>

Chodzi o to że chciałem odwołać się do nich, lecz w js jak próbuję:
document.forms[0].cos[0].value = 'aaaa';
to wychodzi błąd związany z cos[0] konkretnie z [0]. Musze omijać to za pomocą nadawaniu ID, lecz kłopotliwe to dla mnie jak mam duże i rozbudowane formularze. Potrzebuję pomocy, mianowicie jak sformułować scieżke abym mógł użyć w [] w nazwach inputów.

Z Góry dziękuje za pomoc.
Cienki1980
  1. document.nazwa_formularza['cos[0]'].value='aaa';

Zobacz czy takie rozwiązanie zadziała.
misiek172
działa, dzięki stary, ratujesz mi 3 godziny pracy winksmiley.jpg
Joy-machine
za pomocą getElementsByTagName zbierz z formularza wszystkie inputy, następnie w pętli sprawdzaj:
Kod
if( tablica[i].getAttribute('name')=='cos['+i+']' ){ ... }

Chociaż trudno wywnioskować, co chcesz dokładnie zrobić na tych inputach. Poza tym brakuje apostrofów w atrybutach!
misiek172
Cienki1980 najdziwniejsze jest to że według twojego działa, ale wywala błedy że document.nazwa_forma jest pusty lub nie jest obiektem, ale działa haha.gif

OMG o co chodzi?

Cytat(Joy-machine @ 8.02.2007, 19:11:18 ) *
Poza tym brakuje apostrofów w atrybutach!


jeśli wyrazy nie posiadają spacji, to nie są potrzebne apostrofy
lukasz_sosnowiec
Cytat(misiek172 @ 8.02.2007, 19:48:13 ) *
jeśli wyrazy nie posiadają spacji, to nie są potrzebne apostrofy

Chyba jednak są od XHTML 1.0 są obowiązkowe.

// Edit - Oczywiście chodzi o cudzysłowy, a nie o apostrofy.
misiek172
dobra dobra ale mi nie bo nie używam XHTMLa smile.gif, czemu mi bład wyskakuje a jednak wyświetla w inputach?
Cienki1980
Jeżeli takie coś się pojawia to nie masz albo pola o takiej nazwie, albo coś źle napisane w kodzie. Pokaż kawałek kodu z inputami i kawałek kodu JS.
lopik
  1. <input type="text" name="cos" />
  2. <input type="text" name="cos" />
  3. <input type="text" name="cos" />
  4. <input type="text" name="cos" />
  5. </form>
  6.  
  7.  
  8. <script type="text/javascript">
  9.  
  10. input = document.forms[0].cos
  11.  
  12. for (i = 0; i < input.length; i++)
  13. input[i].value = i;
  14.  
  15.  


Jak wartość w atrybucie w name="" się powtarza (jest identyczna), to tablica automatycznie się z tego robi.
W atrybutach HTML robi sie cudzysłowy, a nie apostrofy.
Joy-machine
Poprzez brak cudzysłowa [dzięki lopik za poprawienie] w linkach JS - shackowali allegro, wiec propouje jednak uzywac.

Cytat
dobra dobra ale mi nie bo nie używam XHTMLa

Spoko, nie uzywaj...
lopik
Cytat
dobra dobra ale mi nie bo nie używam XHTMLa

Akurat to nie ma różnicy smile.gif

HTML 4.01 Specification
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.