---
title: "Validera radiobuttons..."
type: "forum-thread"
url: "https://www.webforum.nu/amne/javascript/187938-validera-radiobuttons"
topic: "JavaScript"
topic_url: "https://www.webforum.nu/amne/javascript"
author: "oskars"
published: "2011-09-16T15:52:43.000Z"
updated: "2011-09-19T18:08:10.000Z"
replies: 10
views: 1650
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/javascript/187938-validera-radiobuttons"
---

# Validera radiobuttons...

## #1 — oskars, 2011-09-16T15:52Z

Hej på er!

Jag har mängder med radiobuttons som jag enbart vill kontrollera så att inte någon är glömd.

Så här kan det se ut:

```
<form name="enkat1" method="post" action="#">

<input name="Question_1" type="radio" value="1" />
<input name="Question_1" type="radio" value="2" />
<input name="Question_1" type="radio" value="3" />

<input name="Question_2" type="radio" value="1" />
<input name="Question_2" type="radio" value="2" />
<input name="Question_2" type="radio" value="3" />

</form>
```

Kan nån hjälpa mig med ett javascript som på något sätt loopar igenom alla radiobuttons och kollar så här:

\* Är någon av totalt 3st med  name="Question_1" ifylld? Om inte -\> alert("Du har glömt att fylla i minst en fråga");
\* Är någon av totalt 3st med  name="Question_2" ifylld? Om inte -\> alert("Du har glömt att fylla i minst en fråga");

Förstår ni?

Letar efter en smidig lösning så min kod slipper bli så lång. Det går ju att validera alla för sig, men det borde ju gå att loopa igenom dom på något sätt?

Tacksam för hjälp!

/ O

Permalänk: https://www.webforum.nu/p/187938

## #2 — voigtann1, 2011-09-16T18:28Z

Kör du något Javascripts ramverk?

Permalänk: https://www.webforum.nu/p/2283186

## #3 — oskars, 2011-09-16T18:32Z

Inget speciellt. ... :)

Permalänk: https://www.webforum.nu/p/2283187

## #4 — voigtann1, 2011-09-16T20:00Z

```
var validate = function(form) {
  for(var l=1;l<=2;l++) {
    var wasChecked = false;
    for (var i=0;i<form["Question_"+l].length;i++) {
      if (form["Question_"+l][i].checked) {
        wasChecked = true;
	break;
      }
    }
    if(!wasChecked) {
      alert('fyll i alla fält...');
      return false;
    }
  }

  return true;
}
```

Permalänk: https://www.webforum.nu/p/2283190

## #5 — oskars, 2011-09-17T13:23Z

Ser jättebra ut, men jag använder den nog fel tror jag:

```
				function validateForm() {
					var validate = function(form) {
					  for(var l=1;l<=2;l++) {
					    var wasChecked = false;
					    for (var i=0;i<form["Question_"+l].length;i++) {
					      if (form["Question_"+l][i].checked) {
					        wasChecked = true;
						break;
					      }
					    }
					    if(!wasChecked) {
					      alert('fyll i alla fält...');
					      return false;
					    }
					  }

					  return true;
					}
				}
```

```
<form name="enkat" method="post" action="do.asp" onsubmit="validateForm();">
```

Så tänkte jag använda den ... Men det är som att den inte går igenom funktionen och validerar utan bara går vidare till "do.asp".

Vart gör jag fel?

UPPDATERING.

Jag lyckades lösa det själv så här:

```
<script language="JavaScript">
<!--
function validateForm(form) {
  for(var l=1;l<=2;l++) {

	alert(l);
    var wasChecked = false;
    for (var i=0;i<form["Question_"+l].length;i++) {
      if (form["Question_"+l][i].checked) {
        wasChecked = true;
	break;
      }
    }
    if(!wasChecked) {
      alert('fyll i alla fält...');
      return false;
    }
  }
}
-->
</script>

<form name="enkat" method="post" action="do.asp" onsubmit="return validateForm(this);">
```

Tack för hjälpen!!

Permalänk: https://www.webforum.nu/p/2283204

## #6 — oskars, 2011-09-18T09:35Z

Jag försöker vidare utveckla det nu.

Jag försöker göra så att när den loopar igenom och hamnar på Question_8_a så ska den kontrollera om Question_8_a är markerad, men är den inte markerad samtidigt som Question_7_a's värde är lika med "Ja" så är det OKEJ att Question_8_a inte är markerad.

Alltså så här:

Fråga 7: Gillar du Javascript? JA / NEJ
Fråga 8: Vid Nej ovan, gillar du även HTML? JA / NEJ

Så Fråga 8 är bara obligatorisk vid ett NEJ på fråga 7.

Jag tänkte så här, men det funkar inte:

```
<script language="JavaScript">
<!--
function validateForm(form) {
  for(var l=1;l<=2;l++) {

    var wasChecked = false;
    for (var i=0;i<form["Question_"+l+"_a"].length;i++) {
      if (form["Question_"+l+"_a"][i].checked) {
        wasChecked = true;
	break;
      }

[B]      if (!form["Question_8_a"][i].checked) {
        if (form["Question_7_a"][i].value == "Ja") {
        wasChecked = true;
	break;
      }[/B]

    }
    if(!wasChecked) {
      alert('fyll i alla fält...');
      return false;
    }
  }
}
-->
</script>

<form name="enkat" method="post" action="do.asp" onsubmit="return validateForm(this);">
```

Permalänk: https://www.webforum.nu/p/2283217

## #7 — voigtann1, 2011-09-18T09:50Z

plocka bort den ifrån for loopen. Den första for-loopen säger leta igenom question_1_a och question_2_a nu.

Du få höja antal loopar den skall göra.

Men till din fråga så få du sätta en if fråga om detta är fråga 7 och de har svara X så skall fråga 8 vara markerad...

Permalänk: https://www.webforum.nu/p/2283218

## #8 — oskars, 2011-09-18T17:05Z

Jao, exakt så tänker jag. Det där med att ändra antal loopar har jag förstått.. Jag har bara missat att skriva in det i koden här på forumet.

Och så som du skriver, så tänker jag. Och tycker väl att jag gjort så i min kod ovan... Men jag måste lagt den fel?

Permalänk: https://www.webforum.nu/p/2283222

## #9 — voigtann1, 2011-09-18T18:16Z

variablen i är ju är så pass stor som loopen var, vilket kommer ge dig fel resultat, om du har 5 val på den sista i loopen så kommer den försöka hitta val Question_8A val 5 vilket är fel.

Permalänk: https://www.webforum.nu/p/2283227

## #10 — oskars, 2011-09-19T16:54Z

Äeh, där tappade du bort mig. Jag hänger inte med.

Förstår du varför inte nedan funkar? :)

```
<script language="JavaScript">
<!--
function validateForm(form) {
  for(var l=1;l<=10;l++) {

    var wasChecked = false;
    for (var i=0;i<form["Question_"+l+"_a"].length;i++) {
      if (form["Question_"+l+"_a"][i].checked) {
        wasChecked = true;
	break;
      }

      if (!form["Question_8_a"][i].checked) {
        if (form["Question_7_a"][i].value == "Ja") {
        wasChecked = true;
	break;
      }

    }
    if(!wasChecked) {
      alert('fyll i alla fält...');
      return false;
    }
  }
}
-->
</script>
```

Permalänk: https://www.webforum.nu/p/2283242

## #11 — voigtann1, 2011-09-19T18:08Z

Flytta din if fråga in till den generella loopen och kolla om l är 8 och om det är det så få du kolla igenom alla 7_a svar och se om den som är markerad är värdet "Ja".

Permalänk: https://www.webforum.nu/p/2283244

---

Tråden på webben: https://www.webforum.nu/amne/javascript/187938-validera-radiobuttons
