Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [js] Sprawdzenie pól radio przed wysłaniem, Sprawdzenie czy użytkownik zaznaczył pola typu radio
8_pasarzer_NOSTR...
post
Post #1





Grupa: Zarejestrowani
Postów: 109
Pomógł: 0
Dołączył: 5.11.2009

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


Witam

Mam prosty formularz, i chciałbym w nim wymusić obowiązkowe zaznaczenie dwóch pól typu RADIO. Jeśli użytkownik nie wybierze to musi otrzymać odpowiedni komentarz.

  1. <script type="text/javascript">
  2. function validate(form){
  3. var errors = [];
  4. if (!checkRadioArray(form.przyczyna)) {
  5. errors[errors.length] = "Test";}
  6. if (!checkRadioArray(form.plec)) {
  7. errors[errors.length] = "Test1";}
  8. if (errors.length > 0) {
  9. reportErrors(errors);
  10. return false;}
  11. return true;}
  12. function checkRadioArray(radioButtons){
  13. for (var i=0; i < radioButtons.length; i++) {
  14. if (radioButtons[i].checked) {
  15. return true;}}
  16. return false;}
  17. function reportErrors(errors){
  18. var numError;
  19. var msg = "Zaznacz jaka jest przyczyna";
  20. alert(msg);}
  21. </script>
  22.  
  23.  
  24.  
  25. print"<form action='gdzies_tam.php' name='form1' method='POST' >";
  26. print"PESEL<input type='text' maxlength='11' name='pesel' value='' style='width: 150px;'>";
  27. print"PŁEĆ";
  28. echo"<input type='radio' name='plec' value='m'/>MĘŻCZYZNA";
  29. echo"<input type='radio' name='plec' value='k'/>KOBIETA";
  30. print"PRZYCZYNA";
  31. print"<input type='radio' name='przyczyna' value='1'/>BÓL";
  32. print"<input type='radio' name='przyczyna' value='2'/>CHOROBA";
  33. print"</form>";



Skrypt działa, ale chciałbym aby zmieniał alert w zależności, który radio nie jest zaznaczony. Jeśli radio plec = '', to komunikat taki "aaaaaaaaaaaaa". Jeśli radio przyczyna ='' to komunikat "bbbbbbb".

Jak to przerobić. Poproszę o pomoc.

Ten post edytował 8_pasarzer_NOSTROMO 24.03.2014, 11:59:18
Go to the top of the page
+Quote Post
trueblue
post
Post #2





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


Do tablicy errors wrzucaj odpowiednie komunikaty, a nie "Test".
Funkcję reportErros zmień na:
  1. function reportErrors(errors){
  2. for(var i=0;i<errors.length;i++)
  3. alert(errors[i]);
  4. }
Go to the top of the page
+Quote Post
8_pasarzer_NOSTR...
post
Post #3





Grupa: Zarejestrowani
Postów: 109
Pomógł: 0
Dołączył: 5.11.2009

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


Dzieki wielkie, działa.

OnClick='POMÓGŁ'
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Tak na marginesie: ale wiesz, ze glowne sprawdzanie tak czy siak musi byc po stronie php?
Go to the top of the page
+Quote Post
8_pasarzer_NOSTR...
post
Post #5





Grupa: Zarejestrowani
Postów: 109
Pomógł: 0
Dołączył: 5.11.2009

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


Dzieki wszystkim za pomoc.

Przebudowałem nieco mój kod na taki :
  1. <script type="text/javascript">
  2. function check_form(f) {
  3. if (f.pyt_1.value == ''){alert('Proszę uzupełnić kod pocztowy');return false;}
  4. if (!f.pyt_2[0].checked && !f.pyt_2[1].checked && !f.pyt_2[2].checked){alert('Proszę uzupełnić branżę');return false;}
  5. if (f.pyt_3[0].checked == false && f.pyt_3[1].checked == false){alert('Proszę uzupełnić pole zgody dotyczącej danych osobowych');return false;}
  6. return true;}
  7. </script>
  8.  
  9.  
  10. <form action="index.html" onsubmit="return check_form(this)">
  11. <p>1. Kod pocztowy<sup> (*)</sup>
  12. <br><input type="text" name="pyt_1" size="50">
  13. <p>2. Branza<sup> (*)</sup>
  14. <br><input type="checkBox" name="pyt_2" value="1">Szkolenia
  15. <br><input type="checkBox" name="pyt_2" value="2">Wyposarzenie biur
  16. <br><input type="checkBox" name="pyt_2" value="3">Rozrywka
  17. <p>3. Czy zgadzasz sie na przetwrzanie danych osobowych ?<sup> (*)</sup>
  18. <br><input type="radio" name="pyt_3" value="Tak">Tak
  19. <br><input type="radio" name="pyt_3" value="Nie">Nie
  20. <br><input type="submit" value="Wyślij" /></form>


Skrypt działa jak złoto, sprawdza czy wypełniony jest checkbox, radio, input text. Ale idąc dalej tą analogią chciałbym aby javascript sprawdzał pętlą checkoboxy bo może dojśc do sytuacji że nie będę wstanie z góry wiedziec ile ich będzie.

Przykład formularza :
  1.  
  2. <form action="index.html" onsubmit="return check_form1(this)">
  3. <p>1. Kod pocztowy<sup> (*)</sup>
  4. <br><input type="text" name="pyt_1" size="50">
  5. <p>2. Branza<sup> (*)</sup>
  6. $ile=140;
  7. for($x=0;x<$ile;$x++)
  8. {
  9. <br><input type="checkBox" name="pyt_2[$x]" value="$x">$jakas_zmienna[$x
  10. }
  11. <p>3. Czy zgadzasz sie na przetwrzanie danych osobowych ?<sup> (*)</sup>
  12. <br><input type="radio" name="pyt_3" value="Tak">Tak
  13. <br><input type="radio" name="pyt_3" value="Nie">Nie
  14. <br><input type="submit" value="Wyślij" /></form>


Jak w tym przypadku sprawdzić czy choć jeden checkbox jest zaznaczony ?

Próbowałem coś, takiego :
  1. function check_form1(f){
  2. WartoscPola = "";
  3. iloscradiobuttonow = document.f.pyt_2.length;
  4. for (var i=0; i < iloscradiobuttonow; i++) {
  5. if (f.pyt_2[i].checked == true) {
  6. WartoscPola = f.pyt_2[i].value;
  7. return;
  8. }
  9. }
  10. if (WartoscPola == false){alert('Proszę wybrać choć jeden checkbox');return false;}
  11. }


Bardzo prosze o pomoc, bo z js słabo mi idzie, ale bardzo mi się podoba i zaczynam łapać podstawy.

Witam
Kto mi pomoże z tym formularzem. Tym razem

  1. function check_form2(f){
  2. if (f.doprowadzil.value=='' && f.doprowadzil2.value==''){alert('Alert 1');return false;}
  3. if (f.dyspozycja.value=='' && f.dyspozycja2.value==''){alert('Alert 2');return false;}
  4. return true;}



Formularz składa się z 2 opcji
  1. <form action='cos_tam.php' name='form2' method='POST' onsubmit=\"return check_form2(this);\">

  1. $zapytanie="select dyspozycja FROM ks_ewidencji where (dyspozycja!='') group by dyspozycja order by dyspozycja";
  2. $wykonaj = mysql_query($zapytanie) or die ("<BR>Błąd 527");
  3. while($wiersz = mysql_fetch_array($wykonaj))
  4. {$sl[]=$wiersz['dyspozycja'];}mysql_free_result($wykonaj);
  5. $ile=count($sl);
  6. $dyspozycja = ją uzyskuje w wyniku wcześniejszych zapytań


  1. <select name='dyspozycja' id='dyspozycja' style='width: 180px; size='1'>
  2. <option value='$dyspozycja' selected>$dyspozycja</option>

  1. for($i=0;$i<$ile;$i++){print"<option value='$sl[$i]'>$sl[$i]</option>";}unset($sl,$ile);

  1. </select>&nbsp;&nbsp;&nbsp;
  2. <input type='checkbox' value='wartość' onclick=\"this.form.elements['dyspozycja2'].disabled = !this.checked; this.form.elements['dyspozycja'].disabled = this.checked\" />
  3. inna : <input type='text' name='dyspozycja2' style='width: 150px;' disabled='disabled'>


Można wybrać coś z selecta lub zaznaczyć checkboxem uaktywnienie drugiego pola (input text). Chciałbym uzsyakć alerta o tym iż osoba zaznaczyła checkboxa (że chce wpisać coś w pole input text) a nic nie wpisała.

Pomocy!

Ten post edytował 8_pasarzer_NOSTROMO 25.03.2014, 22:37: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 - 22:32