Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript]Problem z radio buttonami
Forum PHP.pl > Forum > Przedszkole
Marian1290
Witam,
Dopiero zaczynam swą przygodę z JavaScriptem, proszę o wyrozumiałość.
Na stronie mam wiele radio buttonów w formularzu. Chce uzyskać efekt, że jeśli żaden nie jest zaznaczony to wyświetla się alert a w przeciwnym wypadku wykonuje się jakis tam JavaScriptowy kod.
Bardzo prosze o pomoc, kombinuję już cały dzień i nie wychodzi.
Marian1290
Wykombinowałem coś takiego
[JAVASCRIPT] pobierz, plaintext
  1. function radio_v() {
  2. var radia = document.getElementsByName('radia');
  3.  
  4. for (var i = 0; i < radia.length; i++) {
  5. if (radia[i].checked) {
  6. //dalszy kod, wykonuje się jeśli zaznoczono któreś radio
  7. return true;
  8. }
  9. }
  10. alert("Nie wybrano radia.");
  11. return false;
  12. }
[JAVASCRIPT] pobierz, plaintext

Prawie działa, jeśli zaznaczę kod się wykonuje, gdy nie zaznaczę żadnego radia pokazuje się alert. Problem w tym, że jego zamknięcie przeładowuje stronę a tego nie chcę.

Mam jeszcze jedno pytanie:
[JAVASCRIPT] pobierz, plaintext
  1. function radio_v() {
  2. var radia = document.getElementsByName('radia');
  3.  
  4. for (var i = 0; i < radia.length; i++) {
  5. if (radia[i].checked) {
  6. //dalszy kod, wykonuje się jeśli zaznoczono któreś radio
  7. return true;
  8. } else {
  9. alert("Nie wybrano radia.");
  10. return false;
  11. }
  12. }
  13. }
[JAVASCRIPT] pobierz, plaintext

Ten kod wyświetla ten alert również przy zaznaczeniu radia, dlaczego?
Bardzo proszę o pomoc.
markuz
Ten skrypt nie wyświetli alertu dopiero jak zaznaczysz wszystkie. Za każdym razem sprawdzasz czy checkbox jest zaznaczony czy nie. W pierwszym przypadku sprawdzałeś tylko czy był zaznaczony i zwracałeś true (czyli kończyłeś funkcję).
Marian1290
Znów trochę przerobiłem i znów nie działa poprawnie.
[JAVASCRIPT] pobierz, plaintext
  1. function form_action() {
  2. var radia = document.getElementsByName('radia');
  3. var c = 0;
  4.  
  5. for (var i = 0; i < radia.length; i++) {
  6. if (radia[i].checked) {
  7. c = radia[i].value;
  8. } else {
  9. c = 0;
  10. }
  11.  
  12. }
  13. if(c < 0) {
  14. alert("Zaznaczono");
  15. } else {
  16. alert("Nie wybrano radia.");
  17. }
  18. }
[JAVASCRIPT] pobierz, plaintext

Jak powinien wyglądać ten kod? Są to radio buttony nie checkboxy. Po prostu nie ma potrzeby zaznaczania wielu.
Bardzo proszę o pomoc już całkiem się pogubiłem. Z góry dziękuję.
Marian1290
Znów trochę przerobiłem i znów nie działa poprawnie.
[JAVASCRIPT] pobierz, plaintext
  1. function form_v() {
  2. var radia = document.getElementsByName('radia');
  3. var c = 0;
  4.  
  5. for (var i = 0; i < radia.length; i++) {
  6. if (radia[i].checked) {
  7. c = radia[i].value;
  8. } else {
  9. c = 0;
  10. }
  11.  
  12. }
  13. if(c < 0) {
  14. alert("Zaznaczono");
  15. } else {
  16. alert("Nie wybrano radia.");
  17. }
  18. }
[JAVASCRIPT] pobierz, plaintext

Jak powinien wyglądać ten kod? Są to radio buttony nie checkboxy. Po prostu nie ma potrzeby zaznaczania wielu.
Bardzo proszę o pomoc już całkiem się pogubiłem. Z góry dziękuję.
trueblue
  1. function form_v() {
  2. var radia = document.getElementsByName('radia');
  3. var c=false;
  4. for (var i = 0; i < radia.length; i++) {
  5. if(radia[i].checked){
  6. c=true;
  7. break;
  8. }
  9. }
  10. if(c)
  11. alert("Zaznaczono");
  12. else
  13. alert("Nie wybrano radia.");
  14. }

albo:
  1. function form_v() {
  2. var radia = document.getElementsByName('radia');
  3. var c;
  4. for (var i = 0; i < radia.length; i++)
  5. c=radia[i].checked;
  6. if(c)
  7. alert("Zaznaczono");
  8. else
  9. alert("Nie wybrano radia.");
  10. }
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.