webForumDet fria alternativet

Validera en eller flera radio i samma funktion

JavaScript

3 svar · 225 visningar · startad av Obbelix

Medlem sedan okt. 2002257 inlägg
Frågan#1

Jag är på jakt efter en radio-button validering som både funkar om man har endast en radio, eller flera med samma namn.
Om man alltid har flera är det ingen konst, inte heller om det alltid är en, men nu är det så att jag har en "poll" som kan ha 1->många alternativ. Visst, ett svar används väl sällan eller aldrig, men funktionen borde väl ändå att få till?

/red:
Kan ju bifoga den kod jag har idag och som validerar om man har flera alternativ:

function checkPoll() {
	var pa = false;
	for (n=0; n<document.PollForm.poll_alt.length; n++){
		if (document.PollForm.poll_alt[n].checked)
			pa = true;
	}

	if (pa == false) { 
		alert ("Du måste välja ett alternativ."); 
		return false;
	}
}
Medlem sedan apr. 20031 660 inlägg
#2

HEJ!

Jag använder mig av http://www.webforum.nu/showthread.php?s=&postid=818507#post818507.

Letade efter var jag använder den kod i inlägget i som jag markerat som löst, men hittar inte det. Tror det var så att jag inte hade tid att vänta på svar, det räckte med den lösning jag redan hade.
Då får man alltså justera valideringen för varje frågeomgång.

Medlem sedan okt. 2002257 inlägg
#3

nja. Vill inte fungera riktigt, eller rättare sagt, den validerar inget.

På en och samma sida kan detta ske, då jag loopar ut pollarna, och därigenom även en validator för varje. Onödigt? kanske det :)

<form name="PollForm_2" action="" onsubmit="checkPoll_2();">
  <input type="radio" name="poll_alt" value="1">Ja
  <input type="radio" name="poll_alt" value="2">Nej
  <input type="submit" value="Skicka">
</form>
<script language="javascript">
function checkPoll_2() {
	var pa = false;
	for (n=0; n<document.PollForm_2.poll_alt.length; n++){
		if (document.PollForm_2.poll_alt[n].checked)
			pa = true;
	}

	if (pa == false) { 
		alert ("Du måste välja ett alternativ."); 
		return false;
	}
}
</script>
/
..
\
<form name="PollForm_13" action="" onsubmit="checkPoll_13();">
  <input type="radio" name="poll_alt" value="1">Ja
  <input type="submit" value="Skicka">
</form>
<script language="javascript">
function checkPoll_13() {
	var pa = false;
	for (n=0; n<document.PollForm_13.poll_alt.length; n++){
		if (document.PollForm_13.poll_alt[n].checked)
			pa = true;
	}

	if (pa == false) { 
		alert ("Du måste välja ett alternativ."); 
		return false;
	}
}
</script>

Så frågan är om man kan ta den funktionen jag har idag men utöka den att även "fatta" när det bara finns en radio och i så fall kolla att den är ikryssad. Har jag inte helt fel blir det en array om man har flera alternativ med samma namn. Kan man inte kolla på nåt smart sätt i javascript om det just är en array, om inte kolla så att den enda som finns är ikryssad?
Den övre av dessa två fungerar precis som önskat, men den undre säger alltid att man måste kryssa i ett alternativ, fast den enda som finns är ikryssad.

Medlem sedan okt. 2002257 inlägg
#4

Jag gjorde två olika "checkar", en för om det endast finns ett alternativ och en om det finns flera. Sen kolla jag vid utskrift om vilken check som ska skrivas.

253 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)