Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Javascript - jak walidować input radio
tomaszs2
post
Post #1





Grupa: Zarejestrowani
Postów: 36
Pomógł: 1
Dołączył: 3.05.2008

Ostrzeżenie: (0%)
-----


Witam,

Wszędzie w Internecie jest napisane tak jak tutaj:
http://www.felgall.com/javatip2.htm

że walidacja czy któryś z radio buttonów jest wybrany polega na iterowaniu po nich. Jednak to nie jest do końca prawda. Bo jeżeli jest tylko jeden radio button, to walidacja ta nie działa. Sprawdzałem to w Firefoxie 2 i w Internet Explorer 6.0. W momencie kiedy jest jeden radio button nie powstaje kolekcja.

Reasumując, mam:
Kod
   <input type='radio' name='sklep' value='2'>
    <input type='radio' name='sklep' value='3'>


Wtedy kod java script:

Kod
   wybrany_sklep= -1;
    for (i=formularz.wybrany_sklep.length-1; i > -1; i--) {
        if (formularz.wybrany_sklep[i].checked) {
        wybrany_sklep = i; i = -1;
        }
    }


przy założeniu że wybrano radio o value równym 2 zwróci 2. Czyli wszystko OK.

Ale..

Jeżeli w formularzu jest tylko jeden radio:

Kod
   <input type='radio' name='sklep' value='2'>


to przy założeniu, że go wybrano (czyli radio o value równym 2, to powyższy kod javascript zwraca co? -1!

Liczba tych radio buttonów jest u mnie losowa, raz to może być 5, raz 7 a czasem pojawia się tylko 1.
Dlatego chciałbym walidować JavaScriptem też ten przypadek kiedy pojawi się tylko jeden.

Jak na razie wiem, że jak jest jeden radio button i sprawdzam:

Kod
   alert(formularz.wybrany_sklep.checked)to zwraca mi ładnie true, jak wybiorę tego jednego radiobuttona.



W związku z tym mam prośbę. Czy moglibyście napisać jak rozszerzyć powyższy kod JavaScript, żeby elegancko walidował wariant kiedy jest jeden albo wiele radiobuttonów?

EDIT: poprawione zgodnie z uwagą webdicepl



Ten post edytował tomaszs2 5.05.2008, 00:19:25


--------------------
Polub mnie na Facebooku http://www.facebook.com/pages/Polishwords/172360026392
Albo Google+ https://plus.google.com/115722487152014068500/posts
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 21:22