![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 600 Pomógł: 2 Dołączył: 1.09.2002 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Więc tak mam taki mechanizm ustalania aby w danym polu input mogła być tylko liczba całkowita albo rzeczywista.. po prostu przypisuje klase class="only_int" za pomoca jQuery waliduje dane pole.. Teraz mam problem.. jak niepozwolić wpisac w dane pole liczbę spoza podanego przedziału? Ma ktoś może pomysł na taką funkcje? Gdzie miałbym zapisywać wartości tcy przedziałów? do znacznika title? :/ Czy pozostaje tylko walidacja tego pola w trakcie wysyłania formularza? Ten post edytował kukix 16.04.2012, 12:52:01 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 433 Pomógł: 64 Dołączył: 29.01.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Zakres mozesz sobie zapisac w id, np id="10-55"
To taki prosty szablon, pisalem w szybkiej odpowiedzi, to nawet nie wiem, czy gdzies literowki nie mam, ale dojdziesz juz co do czego : ) //EDIT wlasnie zauwazylem, ze jest troche lipa z wpisywaniem dolnej granicy :] //EDIT2 lepiej sobie to sprawdzenie przeprowadzic podczas wysylania i w razie spelnienia ktorychs z powyzszych warunkow alert + return false; Ten post edytował prowseed 16.04.2012, 19:54:06 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 2 350 Pomógł: 512 Dołączył: 4.01.2009 Skąd: Wrocław / Świdnica Ostrzeżenie: (0%) ![]() ![]() |
Id nie może być liczbą( --edit-- ani zaczynać się od liczby --edit-- ).
HTML5 udostępnia nowe atrybuty min i max - wykorzystaj je. Czyli sprawdź czy przeglądarka natywnie obsługuje te atrybuty i jeżeli nie to samemu je przypisz w JS. Ten post edytował kamil4u 16.04.2012, 21:36:54 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 600 Pomógł: 2 Dołączył: 1.09.2002 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Id nie może być liczbą. HTML5 udostępnia nowe atrybuty min i max - wykorzystaj je. Czyli sprawdź czy przeglądarka natywnie obsługuje te atrybuty i jeżeli nie to samemu je przypisz w JS. tzn, że mogę sobie po prostu zrobić <input type="text" name="aaa" min="5" max="20"> i do tego po prostu mam się odnieść przez jquery jak do atrybutów min i max? Czy starsze przeglądarki nie będa protestowały? Ten post edytował kukix 16.04.2012, 21:15:50 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 2 350 Pomógł: 512 Dołączył: 4.01.2009 Skąd: Wrocław / Świdnica Ostrzeżenie: (0%) ![]() ![]() |
Dzięki temu pomysłowi masz:
- zgodność ze specyfikacją HTML 5 - w nowszych przeglądarkach obsługujących min i max nic nie musisz robić, chyba że chcesz, bo np. chcesz mieć własne informacje o błędach, w trochę innym wydaniu - w starszych przeglądarkach( bez obsługi HTML 5 ) za pomocą JS( czy jak chcesz to jQuery ) tworzysz odpowiednie zdarzenie( np. onchange lub onkeyup ), a w nim pobierasz wartość atrybutów min i max do tego prosty if i obsługa błędów i gotowe (IMG:style_emoticons/default/smile.gif) Aha! Starsze przeglądarki zignorują ten atrybut, więc to nie jest żadną przeszkodą. Powodzenia |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 433 Pomógł: 64 Dołączył: 29.01.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Nie będą protestowały, po prostu nie będą rozumiały tych atrybutów. [ //EDIT - dopiero zauważyłem, że @kamil4u napisał to samo, nie wiem, cache mam jakiś, czy co : ) ]
Owszem, id nie może być liczbą zgodnie ze standardami, jeśli więc mamy się tego trzymać, to id="limit-10-55" i robić tablicę trójelementową. Generalnie jednak zakres można odczytywać z atrybutów min i max. Zamiast keyup w moim przypadku możesz zastosować zdarzenie blur() albo focusout(), powinno to lepiej działać. Ten post edytował prowseed 16.04.2012, 22:11:37 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 27.09.2025 - 03:50 |