Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript] Jak blokować przycisk "wynik" gdy nie został wypełniony test wyboru
Forum PHP.pl > Forum > Przedszkole
waq
Witam!
1. Poniżej wklejam działający test wyboru. Jednak jego wadą jest to, że można nacisnąć przycisk "Jak mi poszło" (czyli wyniki) gdy użytkownik nie zaznaczy żadnej odpowiedzi. Czy jest jakaś możliwość blokowania tego przycisku gdy cały test nie został zaznaczony?

2. Druga sprawa, która mnie nurtuje to jak należy zmienić ten skrypt, żeby wyniki nie pokazywały się w formie wyskakującego okienka (jak jest w tym przypadku) tylko na oddzielnej stronie html. Potrzebuje dopisywać do tych odpowiedzi prawidłowe rozwiązania (text, obrazki). A w tym wyskakującym okienku nie da się wkleić obrazka.

Kod
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>

<script LANGUAGE="JavaScript">


var poprawna = new Array;
var mojeOdpowiedzi = new Array;
var wyjasnienieOdpowiedzi = new Array;

var wynik = 0;    // podaj poprawne odpowiedzi dla kolejnych pytań -
poprawna[1] = "b";
poprawna[2] = "b";
poprawna[3] = "a";
poprawna[4] = "c";
poprawna[5] = "b";


function Przypisz(pytanie, odpowiedz) {                                   //  funkcja "Przypisz" przypisuje wybraną przez użytkownika odpowiedź(zmienana "odpowiedz" - a, b, c lub d)
  mojeOdpowiedzi[pytanie]=odpowiedz;                                        // do numeru pytania(zmienna "pytanie" - wartości 1, 2 itd...) i przechowuje je w tablicy "mojeOdpowiedzi"
}                                                                        
                                                                          
function Wynik(){                                                                                 // funkcja "Wynik" podsumowuje punkty:
  var komunikatKoncowy = "Jak mi poszło?\n------------------------------------\n";                  //  zmienna "komunikatKoncowy" przechowuje treść komunikatu wyświetlanego na koniec.
  for(i=1;i<=5;i++){                                                                                // "5" trzeba zmienić w zależności od liczby pytań, to liczba wykonań pętli sprawdzającej czy odpowiedź jest poprawna
     komunikatKoncowy=komunikatKoncowy+"\nPytanie numer :"+i+"\n";                                  // ...dla każego pytania - spradza poprawność...
    if(poprawna[i]!=mojeOdpowiedzi[i]){                                                                  // ...jeśli jest różna od poprawnej...
      komunikatKoncowy=komunikatKoncowy+"\npoprawna odpowiedź to: "+poprawna[i]+"\n";    //to wyświetla komunikat o błędzie z podaniem wyjaśnienia
    }
    else{                                                                                           // w innym przypadku(w razie poprawnej odpowiedzi)...
      komunikatKoncowy=komunikatKoncowy+" \nPoprawnie! \n";
      wynik++;                                                                                      // sumuje punkty za poprawne odpowiedzi z zapisuje to w zmiennej "wynik" i...
    }
  }
  
  komunikatKoncowy=komunikatKoncowy+"\n\nTwój wynik, to : "+wynik+"\n";                            
  
  //wynik użytkownika
  
  komunikatKoncowy=komunikatKoncowy+"\nDodatkowy komentarz w razie potrzeby : ";                  
  
  if(wynik<=0){                                                                                    
    komunikatKoncowy=komunikatKoncowy+"komunikat przy zerowej ilosci punktow. Np... naucz sie jeszcze i wróć";
  }
  if(wynik>=1 && wynik <=2){                                                                      
    komunikatKoncowy=komunikatKoncowy+"Mogło być gorzej";
  }
  if(wynik>=3 && wynik <=3){                                                                      
    komunikatKoncowy=komunikatKoncowy+"Tylko trzy dobrze, mogło być gorzej...";
  }
  if(wynik>4){                                                                                    
    komunikatKoncowy=komunikatKoncowy+"Cztery poprawne. Nieźle.";
  }

  alert(komunikatKoncowy);                                                                         // alert to funkcja wyświetlająca okienko z komunikatem, wyświetla w nim wszystko, co powyżej zostało doklejone do zmiennej "komunikatKoncowy"

}
</script>

</HEAD>

<!-- Krok drugi: Ta część wyświetla formularz - zmienia sie tez spod-->

<BODY>

<DIV>
<h1>Test wiedzy</h1>                                                                              
<b>Sprawdź swoją więdzę o!</b>                                                                    
<hr>
<FORM>                                                                                            
  <b>1. Pytanie numer 1?</b><br>                                                                    
    <input type=radio name="p1" value="a" onClick="Przypisz(1, this.value)">a) Pierwsza odpowiedz<br>
    <input type=radio name="p1" value="b" onClick="Przypisz(1, this.value)">b) Druga odpowiedź<br>
    <input type=radio name="p1" value="c" onClick="Przypisz(1, this.value)">c) Fuftnosta odpowiedź<br>
    <input type=radio name="p1" value="d" onClick="Przypisz(1, this.value)">d) Chyba ostatnie odpowiedź<p>

  <b>2. Pytanie numer 2</b><br>
    <input type=radio name="p2" value="a" onClick="Przypisz(2, this.value)">a) Pierwsza odpowiedz<br>
    <input type=radio name="p2" value="b" onClick="Przypisz(2, this.value)">b) Druga odpowiedź<br>
    <input type=radio name="p2" value="c" onClick="Przypisz(2, this.value)">c) Fuftnosta odpowiedź<br>
    <input type=radio name="p2" value="d" onClick="Przypisz(2, this.value)">d) Chyba ostatnie odpowiedź<p>

  <b>3. 1. Pytanie numer 3?</b><br>
    <input type=radio name="p3" value="a" onClick="Przypisz(3, this.value)">a) Pierwsza odpowiedz<br>
    <input type=radio name="p3" value="b" onClick="Przypisz(3, this.value)">b) Druga odpowiedź<br>
    <input type=radio name="p3" value="c" onClick="Przypisz(3, this.value)">c) Fuftnosta odpowiedź<br>
    <input type=radio name="p3" value="d" onClick="Przypisz(3, this.value)">d) Chyba ostatnie odpowiedź<p>

  <b>4. 1. Pytanie numer 4?</b><br>
    <input type=radio name="p4" value="a" onClick="Przypisz(4, this.value)">a) Pierwsza odpowiedz<br>
    <input type=radio name="p4" value="b" onClick="Przypisz(4, this.value)">b) Druga odpowiedź<br>
    <input type=radio name="p4" value="c" onClick="Przypisz(4, this.value)">c) Fuftnosta odpowiedź<br>
    <input type=radio name="p4" value="d" onClick="Przypisz(4, this.value)">d) Chyba ostatnie odpowiedź<p>

  <b>5. 1. Pytanie numer 5?</b><br>
    <input type=radio name="p5" value="a" onClick="Przypisz(5, this.value)">a) Pierwsza odpowiedz<br>
    <input type=radio name="p5" value="b" onClick="Przypisz(5, this.value)">b) Druga odpowiedź<br>
    <input type=radio name="p5" value="c" onClick="Przypisz(5, this.value)">c) Fuftnosta odpowiedź<br>
    <input type=radio name="p5" value="d" onClick="Przypisz(5, this.value)">d) Chyba ostatnie odpowiedź<p>
<CENTER>
  <input type=button onClick="Wynik()" value="Koniec. Jak mi poszło?">                                
</CENTER>
</FORM>
</DIV>
blooregard
Proszę dodać BBCode.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.