Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Bardziej elastyczny skrypt dodawania pola
JamalBIG
post 26.08.2011, 13:39:54
Post #1





Grupa: Zarejestrowani
Postów: 496
Pomógł: 1
Dołączył: 16.01.2008
Skąd: Świnoujście

Ostrzeżenie: (0%)
-----


Witam

Mógł bym prosić o pomoc w zmodyfikowaniu poniższego kodu JavaScript tak aby mógł obsługiwać więcej niż jedno pole w formularzu (skrypt dodaje pola w przypadku jeżeli ktoś chce dodać więcej pozycji a ja potrzebuje go do obsługi kilku pól np. zainteresowania, osiągnięcia itp., nie chce powielać kilka razy tego samego kodu zmieniając tylko id), dopiero się 'uczę' tego języka dlatego wszelkie uwagi i podpowiedzi będą na wagę złota wink.gif

Plik js:
Kod
var addElement = function(){
    var count = document.getElementById('counter'); //uchwyt do licznika elementow
    var counter = parseInt(count.value); //pobieramy wartosc licznika elementow
    counter += 1; //zwiekszamy ja o 1
    count.value = counter; //i aktualizujemy
    var container = document.getElementById('elements'); //uchwyt do bloku w ktorym
    //beda pojawiac sie nowe elementy
    var newDiv = document.createElement('div'); //tworzymy nowy div, ktory potem
    //wstawimy do kontenera
    newDiv.setAttribute('id','div'+counter); //dodajemy mu atrybut id w celu
    //mozliwosci usuniecia tego elementu
    newDiv.innerHTML = '<input id="element'+counter+'" type="text" class="text" id="element[]" value="" /><span class="removeelement" onclick="removeElement(\'div'+counter+'\')">Usuń</span>';
    //jako zawartosc html nowego diva dodajemy kolejne elementy - pole tekstowe
    //o unikalnym, inkrementowanym ID
    //i spana z wywolaniem akcji usunienia konkretnego bloku div
    container.appendChild(newDiv); //tutaj dodajemy kolejne "dzieci" - nowe elementy
    //dla kontenera elementow
}
var removeElement = function(removeId){
    //jako paramter przechwytujemy id bloku do usuniecia
    var container = document.getElementById('elements');
    //tworzymy uchwyt do kontenera elementow
    var toRemove = document.getElementById(removeId);
    //tworzymy uchwyt to obektu do usuniecia
    container.removeChild(toRemove);
    //i usuwamy "childa" z kontenera;)
}


Plik html
  1. <head>
  2. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  3. <script type="text/javascript" src="funkcje.js"></script>
  4. <style type="text/css">@import url("style.css");</style>
  5. </head>
  6. <body>
  7. <form name="form" action="" method="post">
  8. <input type="hidden" value="0" id="counter" />
  9. <span class="addelement" onClick="addElement();">
  10. Dodaj następny element...
  11. </span>
  12. <div id="elements">
  13. </div>
  14. <input type="submit" value="Wyślij" class="submit" />
  15. </form>
  16. </body>
  17. </html>
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 05:25