![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 91 Pomógł: 8 Dołączył: 26.09.2011 Ostrzeżenie: (10%) ![]() ![]() |
Kod $().ready(function() { i HTML var a=0; $(".addMore a").on({ click:function(e) { if(a==0) { $(".minusMore").prepend('<a href="">- Odejmij pole do wprowadzania wpływu</a>'); } a++; $('#addFormMoney>ul').append( '<li>'+ '<p>'+(a+1)+'</p>'+ '<div>'+ '<label>Podaj wartość wpływu</label>'+ '<input type="text" name="valueMoney[]" value="">'+ '<label>Wybierz kategorie wpływu</label>'+ '<div>'+ '<h4><a href="#">Wybierz kategorie</a></h4>'+ '<ul>'+ '<li><a href="">Bartons</a></li>'+ '<li><a href="">TLS</a></li>'+ '<li><a href="">kat 3</a></li>'+ '<li><a href="">kat 4</a></li>'+ '<li><a href="">kat 5</a></li>'+ '</ul>'+ '<select name="catEnter[]">'+ '<option value="Bartons" selected="selected">Bartons</option>'+ '<option value="TLS">TLS</option>'+ '<option value="kat 3">kat 3</option>'+ '<option value="kat 4">kat 4</option>'+ '<option value="kat 5">kat 5</option>'+ '</select>'+ '</div>'+ '</div>'+ '</li>' ); e.preventDefault(); } }); $(".minusMore").delegate("a","click",function(e) { $("#addFormMoney li").eq(a).remove(); --a; if(a==0) { $(".minusMore").text(' '); } e.preventDefault(); }); $("#addFormMoney ul").on("click","h4 a",function(e) { $(this).parent().next().fadeIn(); e.preventDefault(); }); $("#addFormMoney ul ul").on("click","li a",function(e) { var indexLi=$(this).parent().index(); $(this).parent().parent().next().find("option").removeAttr("selected").eq(indexLi).attr({selected:"selected"}); $(this).parent().parent().fadeOut(); e.preventDefault(); }); $("#addFormMoney ul").on({ click:function(e) { //e.preventDefault(); //e.stopPropagation(); } }); $("html").on({ click:function() { //$("#addFormMoney ul ul").fadeOut(); } }); }); Najpierw za pomocą linku o selektorze "#addFormMoney ul h4 a" dodaje troche kodu HTML, czyli poleformularza typu tekstowego i seleca, którego wyłączam i styluje diva by mieć efekt ostylowanego selecta oraz 2 labele [działa]. Jeden taki zestaw jest dostepny zawsze, wybieram z opcji liste i opcja trafia do $_POST co też działa. Gdy jednak rozwine jakąś nowo dodaną liste i wybiorę jakąś opcje to strona się przeładowywuje. Tak jakby e.preventDefault nie działało. Dlaczego tak się dzieje. Z góry dziękuje za pomoc. Ten post edytował pehaperowiec 7.01.2015, 00:53:05 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 4 291 Pomógł: 829 Dołączył: 14.02.2009 Skąd: łódź Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 91 Pomógł: 8 Dołączył: 26.09.2011 Ostrzeżenie: (10%) ![]() ![]() |
Jeśli dobrze rozumie, to powinienem przypisać zdarzenie click do jakiegoś istniejącego rodzica (czyli nie dodawanego przez append()). No to zmieniam:
Kod $("#addFormMoney ul ul").on("click","li a",function(e) { naKod $("#addFormMoney ul").on("click","ul li a",function(e) { no ale niestety dalej jest to samo. Mógłbyś mi dokładniej wyjaśij w czym tkwi problem?
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 4 291 Pomógł: 829 Dołączył: 14.02.2009 Skąd: łódź Ostrzeżenie: (0%) ![]() ![]() |
Daj jakiś alert zeby w ogole sprawdzic czy event sie wykonuje
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 91 Pomógł: 8 Dołączył: 26.09.2011 Ostrzeżenie: (10%) ![]() ![]() |
tak, alert działa
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 4 291 Pomógł: 829 Dołączył: 14.02.2009 Skąd: łódź Ostrzeżenie: (0%) ![]() ![]() |
Spróbuj z
Kod return false; zamiast Kod e.preventDefault();
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 91 Pomógł: 8 Dołączył: 26.09.2011 Ostrzeżenie: (10%) ![]() ![]() |
Próbowałem już wcześniej i z return false, stopPropagination i preventDefault i dalej nic
Kod $('#addFormMoney>ul').append( Zagnieżdżona lista '<li>'+ '<p>'+(a+1)+'</p>'+ '<div>'+ '<label>Podaj wartość wpływu</label>'+ '<input type="text" name="valueMoney[]" value="">'+ '<label>Wybierz kategorie wpływu</label>'+ '<div>'+ '<h4><a href="#">Wybierz kategorie</a></h4>'+ '<ul>'+ '<li><a href="">Bartons</a></li>'+ '<li><a href="">TLS</a></li>'+ '<li><a href="">kat 3</a></li>'+ '<li><a href="">kat 4</a></li>'+ '<li><a href="">kat 5</a></li>'+ '</ul>'+ '<select name="catEnter[]">'+ '<option value="Bartons" selected="selected">Bartons</option>'+ '<option value="TLS">TLS</option>'+ '<option value="kat 3">kat 3</option>'+ '<option value="kat 4">kat 4</option>'+ '<option value="kat 5">kat 5</option>'+ '</select>'+ '</div>'+ '</div>'+ '</li>' ); ![]() |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
-------------------- |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 91 Pomógł: 8 Dołączył: 26.09.2011 Ostrzeżenie: (10%) ![]() ![]() |
http://jsfiddle.net/5rv8s7p8/1/
Żapisz sobie na kompie, bo jsFiddle jest całkiem inny efekt. Input[type="submit"] powinien być na samym dole, a kolejne elementy listy powinny być dodawane między pierwszą pozycją listy a tym submitem. Ponadto na jsFiddle zauważyłem ciekawą rzecz. Pierwszym razem, na nowo dodanym elemencie działa zmiana wartości listy - przypisanie wartości do selecta a za drugim już nie. Zobacz to najlepiej offline |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Przykład, który podałeś działa bez problemu offline.
Czy tam submit jest w odpowiednim miejscu? -------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 07:21 |