webForumDet fria alternativet

tvinga ifylld radiobutton

9 svar · 372 visningar · startad av huggerFanta

huggerFantaMedlem sedan okt. 2002304 inlägg
#1

Hej!
Jag har ett antal radibuttons på en sida som jag skulle vilja att besökaren måste fylla i för att kunna skicka formuläret!

Alltså, om man inte har valt någon av de radiobuttons som är placerade på sidan, kan man inte skicka formuläret!

Nån som vet om det går!
Man kanske måste använda checkbox istället, det är helt ok!

BaltizMedlem sedan maj 200591 inlägg
#2

Radiobuttons definieras som att man måste välja exakt en. Per definition måste alltså en av dem vara ifylld från början. Bara att sätta selected på en av dem från början.

OlleBoopMedlem sedan feb. 20001 861 inlägg
#3

Fast det ska vara checked och inte selected... :e

J.N.Medlem sedan apr. 20031 660 inlägg
#4

HEJ!

Baltiz skrev:

Radiobuttons definieras som att man måste välja exakt en. Per definition måste alltså en av dem vara ifylld från början. Bara att sätta selected på en av dem från början.

Det var väl inte riktigt sant? Varför måste en vara vald från början?

if (!any_radio(document.getElementsByName('q1'))){
	alert("Svara!");
	return (false);
}

function any_radio(rb){
	for (var i = 0; i < rb.length; i++) {
		if (rb[i].checked) return true;
	}
	return false;
}

<input type="radio" name="q1"... />
BaltizMedlem sedan maj 200591 inlägg
#5

Varför? För att standarden säger så. Om man inte själv väljer nån i html-koden så ska webbläsaren markera den första. Det är det dock inte alla webbläsare som gör korrekt, och då blir det fel. Det är bara att läsa i RFC:n om du inte tror mig.

J.N.Medlem sedan apr. 20031 660 inlägg
#6

HEJ!

Jodå, jag tror dig. :)

Jag funderade om det stod i standarden, men tyckte det vore konstigt, eftersom inte besökaren gör ett aktivt val för frågan då.
(En standard jag inte kommer att följa av det skälet.)
Dessutom är det väldigt sällan man ser förvalda radioknappar.
(Inte för att det har att göra med vad som är rätt!)

Därav min undran.

Koden valideras korrekt utan vald radiobutton, varför?
Det borde vara något som en validering ska kunna lista ut, inte endast en "kom-i-ihåg-att-kolla"-sak?

Du skriver att webbläsaren ska markera själv, det har jag aldrig sett. Menar du att första radioknappen (i resp grupp) ska markeras även om det inte står så i koden, när man kommer in på sidan?
För vilka webbläsare gäller det?

huggerFantaMedlem sedan okt. 2002304 inlägg
#7

Hej och tack!
Jag löste problemet genom att göra om radiobuttons till checkboxar och sen gjorde en kontroll på dessa! jag hittade funktionen på nätet!

BaltizMedlem sedan maj 200591 inlägg
#8

Koden validerar därför att den är korrekt. Standarden säger inte att du måste fylla i checked för något av alternativen (det ska ju webbläsaren göra åt dig)

Som sagt, webbläsarna ska göra det, men de gör det inte alltid.

- "Ja, men vad är det då för mening med att följa standarden när ändå ingen webbläsare följer den?"
Jadu, det är sådana tankeställningar som gör att html-kodning ibland är en jäkla soppa idag. Det började nån gång i mitten på 90-talet när Netscape inte gjorde nånting rätt och man fick leta vägar runt allting... Som tur är är Netscape utdöd idag, och nu har vi bara lite IE-workarounds att leva med.

För att svara på din fråga:

function radio_button_checker() {
	var choice = false;
	for (i=0; i<form.radio_button.length; i++)
		if (form.radio_button[i].checked)
			choice = true; 
	return choice;
}

En bonus: Undersökningar visar att användare till mycket stor del tenderar att välja det förvalda alternativet. Bra om man vill påverka valet.

BaltizMedlem sedan maj 200591 inlägg
#9

huggerFanta: Gjorde om radio buttons till checkboxar Det låter inte rätt. Antingen ska man väl bara kunna välja ett enda alternativ->radio buttons, eller så ska man välja godtyckigt antal->checkbox? På något annat sätt ska man aldrig använda dem.

nitro2k01Medlem sedan aug. 20039 342 inlägg
#10

Baltiz skrev:

Som tur är är Netscape utdöd idag, och nu har vi bara lite IE-workarounds att leva med.

Netscape 4 ja. Netscape 6+, och dess tvilling firefox lever på i god hälsa.

Vad gäller frågan är ett alternativ att ha en radiobutton förkryssad och gömd med css om du vill att användaren ska vara tvungen att göra ett aktivt val.

<input type="radio" name="dummy" checked="checked" style="display:none;" />
139 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)