![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 68 Pomógł: 3 Dołączył: 7.12.2009 Ostrzeżenie: (0%) ![]() ![]() |
Mam kod, który wyłapuje mi inputy z klasami integer lub string.
Kod var element = $( form ).find(".integer, .string"); To działa ślicznie, do momentu, gdy nie dodam jakiegoś inputa poprzez metodę .html(). O ile w internecie jest milion przykładów dla click, jeżeli chodzi o wykorzystanie metod on, delegate, live w tego typu sytuacjach, to nie mogę dojść jak to okodować z find. Ktoś pomoże? |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 349 Pomógł: 72 Dołączył: 22.01.2008 Skąd: Wadowice/Oświęcim Ostrzeżenie: (0%) ![]() ![]() |
W akcji gdzie dopisujesz te inputy,(po dodaniu już inputu) pobierz na nowo te elementy. I powinno działać bezproblemowo.
-------------------- "PHP to człowiek. MySQL to również człowiek."
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 709 Pomógł: 176 Dołączył: 24.10.2010 Ostrzeżenie: (0%) ![]() ![]() |
-------------------- http://d3ut3r.wordpress.com/ | mysql_* jest przestarzałe UŻYWAJ PDO!
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 68 Pomógł: 3 Dołączył: 7.12.2009 Ostrzeżenie: (0%) ![]() ![]() |
Na prostym przykładzie rzeczywiście działa, ale zamiana html() na append() nie pomogła.
Mam coś takiego: Kod <form id="search_form'" action="" method="POST"> //basic data <input type="text" name="data1" value=""/> <input type="text" name="data2" value=""/> //additional data <input type="text" class="input string" name="otherData1" value=""/> <input type="text" class="input string" name="otherData2" value=""/> <input type="text" class="input integer" name="otherData3" value=""/> <input type="text" class="input integer" name="otherData4" value=""/> <input type="button" value="send" /> //place to put extra data from AJAX response <div id="content"></div> </form> Kod var handler = $('#search_form');
function validObligatoryAndType(handler){ handler.submit(function(event){ clearExceptions(handler); var valid = checkForm(handler); if(valid){ return true; } else{ return false; } }); } validObligatoryAndType(handler); function checkForm(form){ var element = $( form ).find(".integer, .string"); var valid = true; $.each(element, function(key, val){ ... //validation }); return valid; } + funkcja, które pobiera z odpowiedzi AJAX dane i generuje z nich dodatkowe pola input: propInputs = '...'; // pola input if(propInputs != ''){propInputs = '<br>Właściwości wybranej kategorii:<br><br><table><tbody>'+propInputs+'</tbody></table>';} $('#content').append(propInputs); |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 709 Pomógł: 176 Dołączył: 24.10.2010 Ostrzeżenie: (0%) ![]() ![]() |
Jesteś pewien, że funkcja checkForm wykonuje się już po odebraniu danych i wstawieniu pól do formularza ?
Masz gdzieś online swój kod ? -------------------- http://d3ut3r.wordpress.com/ | mysql_* jest przestarzałe UŻYWAJ PDO!
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 68 Pomógł: 3 Dołączył: 7.12.2009 Ostrzeżenie: (0%) ![]() ![]() |
checkForm na pewno odpala się jedynie na event submit, wtedy kiedy już dodatkowe pola są pobrane i wyświetlane. Dla pewności ustawiłem tam breakpoint i potwierdził to.
Kodu niestety nie mogę udostępnić online ![]() Czy jest może szansa zastosować jakieś inne, zastępcze rozwiązanie? Ostatecznie mogę zdecydować się na jquery.validator, ale to niestety wymagałoby sporej przebudowy kodu, który odziedziczyłem. Bardziej myślę o innym sposobie wyłapania zawartości tych extra pól. |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 349 Pomógł: 72 Dołączył: 22.01.2008 Skąd: Wadowice/Oświęcim Ostrzeżenie: (0%) ![]() ![]() |
Linię wstaw zaraz po:
Submita odpalasz przez:
czy przez:
? Ten post edytował k_@_m_i_l 23.05.2012, 09:16:53 -------------------- "PHP to człowiek. MySQL to również człowiek."
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 68 Pomógł: 3 Dołączył: 7.12.2009 Ostrzeżenie: (0%) ![]() ![]() |
Ok znalazłem miejsce gdzie skrypt siada
![]() find działał poprawnie. Problem leżał ciut dalej w kodzie, gdzie odnosiłem się do id elementów. Id tych "nowych" inputów zawierały w nazwie spację... Głupi błąd. Dzięki za poświęcony czas. Ten post edytował melior 23.05.2012, 10:28:54 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 14:38 |