Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> radio sprawdzenie, już wymiękam
bpawlik
post
Post #1





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 13.01.2005

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


juz 3 godziny czytam posty dot. radio i walidacji

stworzyłem coś takiego i nie działa i już nie wiem DLACZEGO (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
może macie jakieś pomysły?
  1. <script LANGUAGE="JavaScript">
  2. <!--
  3. function sprawdz()
  4. {
  5. if(document.formularz.r1.checked == false)
  6. {
  7. alert("wypelnij formularz r1");
  8. }
  9.  
  10. if(document.formularz.r2.checked == false)
  11. {
  12. alert("wypelnij formularz r2");
  13. }
  14.  
  15. }
  16. //-->
  17.  
  18. <form method="post" name="formularz" onSubmit=" sprawdz();">
  19. <input type="radio" name="r1" value="1" id="a">1
  20. <input type="radio" name="r1" value="2" id="a">2
  21. <br>
  22. <input type="radio" name="r2" value="3" id="a">1
  23. <input type="radio" name="r2" value="3" id="a">2
  24. <input type="submit">
  25. </form>


to co chcę:
jeśli zadna z opcji (1,2) w r1 nie zaznaczona to alert
jeśli zadna z opcji (1,2) w r2 nie zaznaczona to alert
i oczywiście nie puszcza submita
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
revyag
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 258
Pomógł: 16
Dołączył: 21.09.2004
Skąd: Kielce

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


Musisz inaczej sprawdzać czy radio jest checked, bo na początku przyjmuje on wartość undefined a nie false.
Kod
function sprawdz(){
    if(!document.formularz.r1.checked)
    {
        alert("wypelnij formularz r1");
        return false;
    }
    if(!document.formularz.r2.checked)
    {
        alert("wypelnij formularz r2");
        return false;
    }
    return true;
}

  1. <form method="post" name="formularz" onsubmit="return sprawdz()">
Go to the top of the page
+Quote Post
bpawlik
post
Post #3





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 13.01.2005

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


no coś nie halo...

teraz nie ważne czy zaznaczone czy nie to wywala, ze nie zaznaczone i tylko dla r1

BTW czy dalo by sie zrobic ze jak np. mam na stronie 5 radio (r1, r2, r3, r4, r5)

to sprawdza wszystkie na raz i wypisuje JEDEN komunikat, ze np. 1, 3 i 5 sa nie zaznaczone?

gdzies spotkałem się z czym takim jak .GetElementByName lub Get ElementById
lub cos podobnego (teraz nie pamietam)

bede wdzieczny za pomoc
Go to the top of the page
+Quote Post
revyag
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 2 258
Pomógł: 16
Dołączył: 21.09.2004
Skąd: Kielce

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


No masz rację (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) . Pośpieszyłem się z tym postem. To co napisałem jest troche bez sensu.
Problem jest taki że pole pole radio jest tablicą z ilością elementów taką jak ilość pól do zaznaczenia, więc trzeba to sprawdzać w pętli, ale zawsze jest tak że jedno pole będzie miało właściwość checkded na true a reszta na false. Sposób sprawdzenia tego będzie troche zamotany.
Tu masz przykład dla dwóch elementów radio, może coś sensownego sklecisz z tego (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Kod
function check(chk){
    res=chk.length;
    for(var i=0;i<chk.length;i++){
        if(chk[i].checked==true){
            res--;
        }
    }
    f(chk.length==res){
        return false;
    }else{
        return true;
    }
}

function sprawdz(){

    var r1 = document.formularz.r1;
    var r2 = document.formularz.r2;
    
    var unc = new Array(check(r1),check(r2));
    
    var str="";    
    
    for(var i=0;i<unc.length;i++){
        if(unc[i]==false){
            str+="r"+(i+1)+" ";
        }
    }
    
    str+="nie zaznaczone";
    
    if(str!="nie zaznaczone"){
        alert(str);
        return false;
    }
    
    return true;
}


Ten post edytował revyag 11.06.2005, 13:22:13
Go to the top of the page
+Quote Post
bpawlik
post
Post #5





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 13.01.2005

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


działa, jest okej (za drugim podejściem) bo nie zauwazyłem literów kolegi revyag-a
w funkcji check zamiast "f" ma byś oczywiście "if"

jeszcze raz dzięki (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

BTW
znalazłem też wczoraj całą klasę w JS do sprawdzania formularzy,
ale jej zasotoswanie przerasta moje mozliwości (w dziedzinie JS oczywiście)
mimo wszytko dzięki za wysiłek, może komuś innemu się to przyda

http://webcoder.info/downloads/validate.html

Ten post edytował bpawlik 11.06.2005, 19:29:54
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 00:54