Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Dynamiczne dodawanie formularza
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
Jarod
Domyślne mój formularz zawiera 2 pola input, które rozłożone są obok siebie.
Zastosowałem poniższy skrypt, aby dodawać kolejne wiersze z inputami.
Problem w tym, że ten skrypt, generuje coś takiego:
Kod
<input class="dimentions_length_input" type="text" name="iLength" value="" maxlength="4" />
<input class="dimentions_width_input" type="text" name="iWidth" value="" maxlength="4" />


a potrzebuję coś takiego:
Kod
<p class="dimentions_length_input"><input type="text" name="iLength" value="" maxlength="4" /></p>
<p class="dimentions_width_input"><input type="text" name="iWidth" value="" maxlength="4" /></p>


Funkcja JS:
  1. function addInputs(id)
  2. {
  3. var element = document.createElement('input');
  4. element.setAttribute('type', 'text');
  5. element.setAttribute('name', 'iLength');
  6. element.setAttribute('maxlength', '4');
  7. element.className = 'dimentions_length_input';
  8. var container = document.getElementById(id);
  9. container.appendChild(element);
  10.  
  11. var element = document.createElement('input');
  12. element.setAttribute('type', 'text');
  13. element.setAttribute('name', 'iWidth');
  14. element.setAttribute('maxlength', '4');
  15. element.className = 'dimentions_width_input';
  16. var container = document.getElementById(id);
  17. container.appendChild(element);
  18. }



Raczkuję dopiero w JS i nie wiem czy jest coś takiego możliwe? Próbowałem przed element.setAttribute('type', 'text'); wywoływać coś ala
element.= '<p class="dimentions_length_input">';
ale oczywiście nie działa.

Ktoś pomoże?

Pozdrawiam
nowotny
Zobacz czy coś takiego będzie działać:
  1. function addInputs(id)
  2. {
  3. var container = document.getElementById(id);
  4. for(var i=0;i<2;i++){
  5.  
  6. var par = document.createElement('p');
  7. par.className = 'dimentions_length_input';
  8. container.appendChild(par);
  9.  
  10. var element = document.createElement('input');
  11. element.setAttribute('type', 'text');
  12. element.setAttribute('name', 'iLength');
  13. element.setAttribute('maxlength', '4');
  14. par.appendChild(element);
  15. }
  16.  
  17. }
Jarod
Wogóle nie działa..
nowotny
Cytat(Jarod @ 5.02.2008, 20:47:18 ) *
Wogóle nie działa..

3 edity były więc teraz sprawdź... smile.gif
Jarod
Dziękuje.

Edit: W jaki sposób wyświetlić na ekranie zawartość "element"? Przez alert nie działa bo to obiekt?
Pytam się ponieważ mi coś nie pasuje.
Skoro najpierw tworzysz element <p> i dodajesz go, następnie dodajesz inputa, to dlaczego nie zamykasz elementu </p> ?
Chciałbym mieć pewność, że input rzeczywiście zostaje utworzony pomiędzy znacznikami <p></p>

pzdr
nowotny
Cytat(Jarod @ 5.02.2008, 20:59:43 ) *
Skoro najpierw tworzysz element <p> i dodajesz go, następnie dodajesz inputa, to dlaczego nie zamykasz elementu </p> ?

Bo Javascript robi to za mnie...

Cytat(Jarod @ 5.02.2008, 20:59:43 ) *
Chciałbym mieć pewność, że input rzeczywiście zostaje utworzony pomiędzy znacznikami <p></p>


Sprawdź sobie jakimś DOM inspectorem...
http://img216.imageshack.us/img216/329/2008020500uc9.png
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.