![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 381 Pomógł: 12 Dołączył: 9.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
mam problem, mam formularz który po wybraniu selecta bez przeładowania strony wysyła info do pliku php i odbiera dodatkowe pola do tego formularza. Próbuję teraz napisać prostą funkcję w JS która sprawdzi czy jest dane pole i jak jest czy jest puste, jak jest puste to alert ... ale dzieją się dziwne rzeczy, otóż np. Wybieram coś z selekta i dostaje pole a, b i c klikam żeby sprawdziło i wyskakuje że pola są puste, zmieniam selecta stare pola się usuwają i dostaje zamiast nich pola d, e, f klikam żeby sprawdziło i teraz pola a,b,c,d,e,f są puste ... tylko że ich już nie ma i nie powinno tego pokazać ;/ Czym to jest spowodowane ? Pola sprawdzam w ten sposób: Kod if(field.pole_a && field.pole_a.value == ""){ alert('Pole a jest puste'); } field(to zmienna z zawartością formularza) Ten post edytował Elber 4.03.2012, 00:03:17 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 332 Pomógł: 294 Dołączył: 12.10.2008 Skąd: Olkusz Ostrzeżenie: (0%) ![]() ![]() |
rzeczywiście element jest gdzieś keszowany (w firebugu nie znalazłem gdzie to jeszcze siedzi) choć go nie ma w drzewie DOM - i właśnie tutaj masz rozwiązanie a jQuery wyżej źle urzywałeś...
by sprawdzić czy w znalezionym formularzu jest w drzewie DOM element o okreslonym atrybucie name możesz w czystym js wyszukać: ff.querySelector('[name=pole_a]'); // zwróci element lub null w jQ można to zapisać w ten sposób: $('[name=pole_a]', field); gdzie drugi argument oznacza kontekst wyszukiwania... jednak nawet jeśli tablica będzie pusta, to konwersja obiektu jQ do wartości bool zawsze zwróci true... a więc po prostu musisz sprawdzać własność length gdzie 0 zostanie skonwertowane do false a każda inna wartość na true lub sprawdzaj pierwszy element jQ gdzie jeśli go nie ma zwróci undefined a jeśli jest zwróci Ci element; $('[name=pole_a]', field).length; // liczba znalezionych elementów $('[name=pole_a]', field)[0]; // pierwszy element tablicy... |
|
|
![]() ![]() |
![]() |
Aktualny czas: 18.10.2025 - 08:00 |