Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [jquery] Usuwanie nowododanych pól w dynamicznym formularzu
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
kovalskipl
Witam.

Przy pisaniu takiego dosyć prostego dynamicznego formularza w jquery napotkałem taki problem. Otóż w kodzie zamieszczonym poniżej powstaje problem przy usuwaniu nowo dodanych przez jquery pól. Pola niedodane dynamicznie usuwają się bezproblemowo. Co ciekawe dodawany przez js kod jest identyczny z tym, który jest w kodzie html.

Macie może jakiś pomysł co tu jest nie tak?

pozdrawiam,
Łukasz


  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" dir="ltr" lang="en-US">
  3.  
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
  5. <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
  6.  
  7. $(document).ready(function() {
  8. $('input[name=insertfield]').click(function(){
  9. $('div#pola').append('<label><input type="text" name="field[]" /> <a href="#" class="delfield">usuń</a></label>');
  10. });
  11.  
  12. $('a.delfield').click(function(){
  13. $(this).parent('label').remove();
  14. });
  15. });
  16. </head>
  17.  
  18.  
  19. <div id="pola">
  20. <label><input type="text" name="field[]" /> <a href="#" class="delfield">usuń</a></label>
  21. </div>
  22. <input type="button" name="insertfield" value="dodaj" />
  23.  
  24.  
  25. </body>
  26. </html>
nospor
Sobie wyobraż sytuację, że masz 5 krzeseł. Pomalowales te 5 krzesel na czerwono.
Teraz do pokoju wnosisz kolejne dwa krzesła. I co? Myslisz ze te dwa krzesła nagle same się pomalują na czerwono? Nie, dopóki ty ich znowu nie pomalujesz to one same się nie pomalują.


$('a.delfield').click(function(){
$(this).parent('label').remove();
});
ten kod dziala na aktualnie istniejące pola. Jak dodajesz nowe pola to ten kod ich nie obejmuje.
Zainsteresuj się więc LIVE w jquery albo kazdemu nowododanemu polu przypisuj zdarzenie click co to masz w kodzie wyzej
kovalskipl
No fakt. Jednak krzesła same się nie pomalują winksmiley.jpg

Kod
            $('a.delfield').live('click', function(){
                  $(this).parent('label').remove();
            });



Dzięki za pomoc smile.gif

Pozdrawiam,
Łukasz
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.