![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 1 Dołączył: 18.10.2008 Ostrzeżenie: (0%) ![]() ![]() |
witam,
napisałem sobie kilka linijek które mają sprawdzać w Javascripcie czy pole input zostało wypełnione/wybrane lub zaznaczone, poniżej wersja wygenerowanego HTML, ale oczywiście wszystko działa na zmiennych PHP, musiałem gdzieś popełnić błąd przy modyfikacji bo początkowo skrypt działał, jest on bardziej rozbudowany o poszczególne obiekty z pól input, ale zasada jest taka sama nagle przestał działać i stąd moja prośba o analizę i wskazanie błędu
Ten post edytował Aquarius 18.03.2014, 18:31:39 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
U mnie sklejony kod z tych fragmentów działa.
Jaki u Ciebie jest objaw niedziałania? -------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 1 Dołączył: 18.10.2008 Ostrzeżenie: (0%) ![]() ![]() |
dla pewności okroiłem go maksymalnie, sprawdziłem i rzeczywiście zadziałał, natomiast jeżeli dodam kolejny obiekt np. Nazwisko - skrypt przestaje działać |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Twój kod JS +
nadal działa. -------------------- |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 1 Dołączył: 18.10.2008 Ostrzeżenie: (0%) ![]() ![]() |
no tak, po dodaniu odpowiedniego pola input, jednak formularz tworzy się dynamicznie, nie wszystkie pola podane w Javascripcie jako obiekty będą zawsze występowały w formularzu
gdy więc zdefiniuję:
ale takiego pola nie będzie w formularzu - skrypt nie zadziała |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Nie możesz więc tak zrobić, bo przy pierwszym wywołaniu validateForm tego elementu nie ma, a co za tym idzie skrypt zatrzymuje się na linii 5.
Pobieranie atrybutów musisz otoczyć deklaracją try/catch. Potem w zależności czy dana zmienna jest zdefiniowana czy nie, wykonujesz blok odpowiedzialny za walidację. -------------------- |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 1 Dołączył: 18.10.2008 Ostrzeżenie: (0%) ![]() ![]() |
aha, ok, rozumiem,
wybacz, w Javascript nie pisałem nic swojego, rozumiem zasadę, trochę brak mi doświadczenia ze składnią, czy byłbyś w stanie na tym konkretnym przykładzie podać rozwiązanie? w PHP można ale nie trzeba podawać alternatywę dla if'a jeżeli jakaś zmienna nie jest zdefiniowana, a tutaj niestety jest to wymagane (długa droga przede mną w Javascripcie, a nawet dobrze nie zacząłem ![]() Ten post edytował Aquarius 18.03.2014, 20:27:05 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
albo
Ten post edytował trueblue 18.03.2014, 20:40:53 -------------------- |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 2 355 Pomógł: 533 Dołączył: 15.01.2010 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
Proponuję używać
np:
Ten post edytował Damonsson 18.03.2014, 20:45:20 |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 1 Dołączył: 18.10.2008 Ostrzeżenie: (0%) ![]() ![]() |
dzięki piękne, zadziałało tak jak powinno
![]() staram się nie pytać o gotowca tylko sam dojść do rozwiązania, ale niekiedy po prostu trzeba @Damonsson, czy to jakaś bardzo istotna różnica? |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 2 355 Pomógł: 533 Dołączył: 15.01.2010 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
Nie istnieje taki atrybut jak np "nazwiskowymagane", do takich spraw powinno się właśnie używać atrybutu data-*.
Różnica w działaniu żadna. Tylko walidator nie rzuci błędem i będzie stricte poprawny kod HTML. Tak dodałem do tematu, bo uważam, że warto o tym wspomnieć. |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
dzięki piękne, zadziałało tak jak powinno ![]() staram się nie pytać o gotowca tylko sam dojść do rozwiązania, ale niekiedy po prostu trzeba I bardzo dobrze, bo najlepiej się uczyć samemu. Atrybuty data- stosuj jeśli masz zadeklarowany doctype html5. Oczywiście jeśli zastosujesz, te które masz w kodzie nie zwaliduje Ci się kod nawet przy html transitional. -------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 09:53 |