Grupa MagazynyInternetowe
Online: 925
Tym razem pokażemy, jak dynamicznie dodawać nowe elementy do formularza. Ze znajomością kilku funkcji okaże się to łatwe i szybkie.
Damian Wielgosik
Często zachodzi potrzeba dodania konkretnej liczby pól w formularzu (gdy chcemy wgrać wiele plików naraz). Wówczas przydaje się button/link, po kliknięciu którego w dokumencie pojawia się nowy <input type="file" />. Spróbujemy coś takiego zrealizować. Standardowo zaczniemy od gotowego pliku HTML, który nie zawiera ani jednej linijki kodu JavaScript.
1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2. <html xmlns="http://www.w3.org/1999/xhtml" lang="pl-PL"> 3. <head> 4. <title>Strona z dynamicznym formularzem</title> 5. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 6. <!-- Nasz kod Javascript: --> 7. <script type="text/javascript"> 8. ... 9. </script> 10. </head> 11. <body> 12. <div><a href="#add_input" id="add_input">dodaj nowe pole typu file</a></div> 13. <form name="add_file" enctype="multipart/form-data" method="post"> 14. <input type="file" name="file-1" /> 15. <input type="submit" value="dodaj" /> 16. </form> 17. </body> 18. </html>
Aby dodać nowe pole do formularza, po kliknięciu linku dodaj nowe pole typu file należy wykonać poniższe kroki:
<input> (nowość!),Czas na wypełnienie naszego planu. Musimy nadać właściwość onclick naszemu linkowi po załadowaniu całego dokumentu. Odpowiedzialna za to będzie funkcja Laduj.
1. window.onload = Laduj; 2. function Laduj() 3. { 4. document.getElementById('add_input').onclick = DodajElement; 5. }
Oczywiście można też zastosować zapis:
1. window.onload = Laduj; 2. function Laduj() 3. { 4. var link = document.getElementById('add_input'); 5. link.onclick = DodajElement; 6. }
Po co jednak tworzyć niepotrzebnie długi kod. Pora teraz zdefiniować nową funkcję, która wykona się po kliknięciu naszego linku i będzie odpowiedzialna za dodanie nowego elementu do formularza.
1. function DodajElement() 2. { 3. }
Trzeba uzupełnić tę funkcję niezbędnym kodem. Najpierw należy utworzyć nowy tag (element input) w JavaScripcie. Pomoże w tym funkcja .createElement() (createElement = stwórz element). Ponieważ każdy tag jest dzieckiem całego dokumentu, używamy jej w połączeniu ze słówkiem document - document.createElement. Stworzymy więc dzięki niej nowy element input, który będzie zapisany w zmiennej o nazwie element:
1. function DodajElement() 2. { 3. var element = document.createElement('input'); 4. }
Powiązane publikacje
Komentarzy: 2
Artykuły tego autora:
Od lat żadna technologia nie zagroziła JavaScriptowi, językowi uznawanemu za zabawkę dla dzieci. Czy uda się mu zachować popularność i zapewnić źródło utrzymania kolejnym programistom?
Polecamy:
Na skróty:
Magazyny Internetowe| Co za ile| Programy| Praca| Magazyn Internet| Internet Maker| Web Toster| ForumNasze serwisy: