Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [js]dodawanie pól formularza
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
Budaa
Witam, mam taką oto funkcję:
Kod
function dodaj_element(kontener){
    document.getElementById('natures_get_id').setAttribute('value',i);
    var name = 'natures_name';
    name+=i;
    var znacznik = document.createElement('input');
    znacznik.setAttribute('type', 'text');
    znacznik.setAttribute('name', name);
    znacznik.setAttribute('class', 'blok');
    var kontener = document.getElementById(kontener);
    kontener.appendChild(znacznik);
    i++;
}

Funkcja ma za zadanie:
1. Zliczanie ile pól dodano(id) i przekazanie wyniku do ukrytego pola w celu przekazania tej zmiennej do skryptu php.
2. Dodanie jednego pola input z określonymi atrybutami
3. Inkrementcję atrybutu name dla kolejnych dodanych pól tj.(natures_name1, natures_name2, natures_name3 itd.) Zgodnie z id. dla id=1 -> natures_name1.
4. Dodanie tego inputu w ściśle określonym divie.

Wyżej podana funkcja bardzo dobrze sprawdza się w dodawaniu pojedynczego inputu. Lecz niestety nie mogę sobie poradzić z tym, żeby funkcja za jedynym kliknięciem dodała np 5 inputów i każdy z nich z innymi parametrami. (oczywiście każdy ma mieć inkrementację liczby przy trybucie "name".

Bardzo prosiłbym o pomoc. Utknąłem z robotą.

ps: Właśnie. Co z polem select? Też chciałbym, żeby była możliwość dodani tego typu pola, oczywiście z określonymi opcjami.
kamil4u
Stwórz sobie ogólną funkcję do tworzenia elementów - np. moja:
[JAVASCRIPT] pobierz, plaintext
  1. function newElement(E,O,i,k){ //E->element, O->opcje
  2. E = document.createElement(E);
  3. for(i in O){
  4. if(i.toLowerCase()=='css')
  5. for(k in O[i]) E.style[k=='float'?(document.all?'styleFloat':'cssFloat'):k] = O[i][k];
  6. else if(i.toLowerCase()=='event')
  7. for(k in O[i]) E['on'+k] = O[i][k];
  8. else
  9. E[i] = O[i];
  10. }
  11. return E;
  12. }
  13. //////////////////////////////////////////////////////
  14. var el = newElement('a',{
  15. 'href': 'http://www.google.pl',
  16. 'title': 'google',
  17. 'innerHTML': 'KLIK',
  18. 'css': {
  19. 'color': '#f0f',
  20. 'textDecoration': 'line-through',
  21. 'float': 'right'
  22. },
  23. 'event': {
  24. 'mouseover': function(){ this.style.color = '#0f0'; },
  25. 'mouseout': function(){ this.style.color = '#f0f'; }
  26. }
  27. });
  28. document.body.appendChild(el);
[JAVASCRIPT] pobierz, plaintext


Wtedy parametry dość łatwo będziesz mógł zmieniać i stworzyć funkcję, która będzie dodawała dokładnie to co chcesz. Samej istoty problemu nie zrozumiałem niestety - opisz dokłądniej

Pozdrawiam
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.