webForumDet fria alternativet

kontroll av 3 radiobuttons!

11 svar · 430 visningar · startad av Thompa__85

Thompa__85Medlem sedan aug. 2002600 inlägg
#1

Hejsan Wf!

Jag har en liten fråga här:

Jag vill i ett forumlär, kontrollera att 1 av 3 radiobuttons är checked!
Alla heter likadant: R1
Formuläret heter: Stryktipset

Hur fasen får jag det att fungera?
har testat massor här från forumet, men får inget att fungera..

Vore tacksam om någon kunde hjälpa mig!

Mvh Adde

nitro2k01Medlem sedan aug. 20039 342 inlägg
#2

Jag skulle kanske rekommedera att du lägger till selected="selected" för ett av alternativen.

Thompa__85Medlem sedan aug. 2002600 inlägg
#3

nitro2k01 skrev:

Jag skulle kanske rekommedera att du lägger till selected="selected" för ett av alternativen.

vad händer då?

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

HEJ!

Titta på inlägg http://www.webforum.nu/showthread.php?s=&threadid=97843&forumid=24 för att se en enklare och en avancerad variant.

Genom att välja något som default ("checked") slipper du validering, den uppenbara nackdelen är att användaren inte gör ett aktivt val.

nitro2k01Medlem sedan aug. 20039 342 inlägg
#5

Thompa__85 skrev:

nitro2k01 skrev:

Jag skulle kanske rekommedera att du lägger till selected="selected" för ett av alternativen.

vad händer då?

Då blir det alternativet som får attributet förkryssat, ch du behöver alltså inte oroa dig för att ingen ruta är ikryssad.

Thompa__85Medlem sedan aug. 2002600 inlägg
#6

Okej,
men jag har nu denna kod:

<script type="text/javascript">

function f(fObj) {
    var
	elms = fObj.elements,
	iLen = elms.length,
	oArr = [];

    for (var i = 0; i < iLen; ++i)
	if (elms[i].type == "radio")
	    if (i == 0 || (i > 0 && oArr[oArr.length - 1][0].name != elms[i].name))
		oArr.push(elms[elms[i].name]);

    iLen = oArr.length;

    for (var i = 0; i < iLen; ++i) {
	var
	    j  = oArr[i].length,
	    ch = false;

	for (var k = 0; k < j; ++k)
	    if (oArr[i][k].checked) {
		ch = true;
		break;
	    }

	if (!ch) {
	    alert("Välj ett alternativ!");
	    return false;
	}
    }

    return true;
}

</script>

<form method="POST" action="stryktipset_skicka.asp" name="stryktipset" onsubmit="return f(this)">
<tr>
<td bgcolor="#627788" align="center">Spelstopp 27/3 14.00</td>
<td width="8%" bgcolor="#627788" align="center"><b>1</b></td>
<td width="8%" bgcolor="#627788" align="center"><b>X</b></td>
<td width="8%" bgcolor="#627788" align="center"><b>2</b></td>
</tr>
<tr>
<td align="center">Chelsea - Arsenal</td>
<td width="8%" align="center">			
<input type="radio" value="1" name="R1"></td>
<td width="8%" align="center">
<input type="radio" value="x" name="R1"></td>
<td width="8%" align="center">
<input type="radio" value="2" name="R1"></td>
</tr>

osv.. ändå till R13

Men det kommer inte upp någon alert?
har jag missat något?

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

HEJ!

Under förutsättning att du har en <input type="submit"> på lämpligt ställe fungerar det utmärkt hos mig!

Och även om jag lägger till en rb-grupp till!

Thompa__85Medlem sedan aug. 2002600 inlägg
#8

J.N. skrev:

HEJ!

Under förutsättning att du har en <input type="submit"> på lämpligt ställe fungerar det utmärkt hos mig!

Och även om jag lägger till en rb-grupp till!

jodå, har denna:

<input type="submit" name="Skicka" value="Betala">

Testade du min kod? Å de funkade?

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

HEJ!

Japp, det fungerade utmärkt. Testade visserligen endast i HomeSites "granskningsläge", men det ska fungera lika bra.

Thompa__85Medlem sedan aug. 2002600 inlägg
#10

J.N. skrev:

HEJ!

Japp, det fungerade utmärkt. Testade visserligen endast i HomeSites "granskningsläge", men det ska fungera lika bra.

Hmm, varför funkar det inte för mig då?
här kan du kolla på det online:
http://www.webtipsen.net/stryktipset.asp

Vore as shysst!

mvh Adde

Peter SMedlem sedan dec. 20025 483 inlägg
#11

Anledningen till att det inte fungerar för dig är att du använder MSIE 5.01. Array-objektets push()-metod implementerades inte förrän i 5.5-versionen.

Lösningen blir att du får skapa en egen version av denna metod för de äldre webbläsarna:

if (typeof Array.prototype.push == "undefined")
    Array.prototype.push = function() {
	var aLen = arguments.length,
	    tLen = this.length;
	for (var i = 0; i < aLen; ++i) this[tLen + i] = arguments[i];
	return this.length;
    }

// Resten av JavaScript-koden

:)

Thompa__85Medlem sedan aug. 2002600 inlägg
#12

Peter S skrev:

Anledningen till att det inte fungerar för dig är att du använder MSIE 5.01. Array-objektets push()-metod implementerades inte förrän i 5.5-versionen.

Lösningen blir att du får skapa en egen version av denna metod för de äldre webbläsarna:

if (typeof Array.prototype.push == "undefined")
    Array.prototype.push = function() {
	var aLen = arguments.length,
	    tLen = this.length;
	for (var i = 0; i < aLen; ++i) this[tLen + i] = arguments[i];
	return this.length;
    }

// Resten av JavaScript-koden

:)

Kanon! Nu funkar de as bra! Tack!

134 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)