webForumDet fria alternativet

min/max antal checkboxar

9 svar · 236 visningar · startad av Mav

MavMedlem sedan juni 2000117 inlägg
#1

Jag vill kolla att max 2 checkboxar är förkryssade i ett formulär. Mitt problem är att "name" på checkboxarna är olika, de heter "p_c1", "p_c2" osv.
Om de haft samma "name" hade jag kunnat använda följande kodsnutt men hur gör jag nu när de har olika "name"?

<html>
<head>
<script language="JavaScript">
<!--
n=0
function rakna(w){
(document.foo.bar[w].checked==true)? n++ : n--;
} 
function koll(){
if(n<2){alert("Minst 2 måste bockas!"); return false}
if(n>2){alert("Max 2 får bockas!"); return false}
} 

//-->
</script>
</head> 

<form name=foo onsubmit="return koll();">
1: <input type="checkbox" name="bar" value="A1" onclick="rakna(0);"><br>
2: <input type="checkbox" name="bar" value="A2" onclick="rakna(1)"><br>
3: <input type="checkbox" name="bar" value="A3" onclick="rakna(2)"><br>
4: <input type="checkbox" name="bar" value="A4" onclick="rakna(3)"><br>
5: <input type="checkbox" name="bar" value="A5" onclick="rakna(4)"><br>
<Input type="submit">
</form>
</html>

------------------
//Mav

JohnsenMedlem sedan juli 2000836 inlägg
#2

Räkna elementen i formuläret:

<head>
<script language="JavaScript">
<!--
n=0
function rakna(w){
(document.foo.elements[w].checked==true)? n++ : n--;
}
function koll(){
if(n<2){alert("Minst 2 måste bockas!"); return false}
if(n>3){alert("Max 3 får bockas!"); return false}
}
//-->
</script>
</head>
<form name=foo onsubmit="return koll();">
1: <input type="checkbox" name="p_c1" value="A1" onclick="rakna(0);"><br>
2: <input type="checkbox" name="p_c2" value="A2" onclick="rakna(1)"><br>
3: <input type="checkbox" name="p_c3" value="A3" onclick="rakna(2)"><br>
4: <input type="checkbox" name="p_c4" value="A4" onclick="rakna(3)"><br>
5: <input type="checkbox" name="p_c5" value="A5" onclick="rakna(4)"><br>
<Input type="submit">
</form>

------------------
- J-O-H-N-S-E-N -
------------------

MavMedlem sedan juni 2000117 inlägg
#3

Det funkar inte...verkar som om att den inte kollar överhuvudtaget!? Jag kan skicka formuläret utan att kontroll görs.

------------------
//Mav

MavMedlem sedan juni 2000117 inlägg
#4

Kan det bero på att jag har en del fält innan checkboxarna?

------------------
//Mav

JohnsenMedlem sedan juli 2000836 inlägg
#5

Japp, kolla här:

<form name="foo">                               -->> forms[0] 
<input type="text" name="text" value="A1">      -->> elements[0]
<input type="checkbox" name="p_c1" value="A2">  -->> elements[1]
<Input type="submit">                           -->> elements[2]
</form>

------------------
- J-O-H-N-S-E-N -
------------------

MavMedlem sedan juni 2000117 inlägg
#6

Får det inte att funka ändå. Skriver man inte någont såhär:

<script language="JavaScript">
<!--
n=0
function rakna(w){
(document.register.elements[5].checked==true)? n++ : n--;
(document.register.elements[6].checked==true)? n++ : n--;
(document.register.elements[7].checked==true)? n++ : n--;
(document.register.elements[8].checked==true)? n++ : n--;
(document.register.elements[9].checked==true)? n++ : n--;
(document.register.elements[10].checked==true)? n++ : n--;
(document.register.elements[11].checked==true)? n++ : n--;
(document.register.elements[12].checked==true)? n++ : n--;
(document.register.elements[13].checked==true)? n++ : n--;
}
function koll(){
if(n<2){alert("Minst 2 måste bockas!"); return false}
if(n>2){alert("Max 2 får bockas!"); return false}
}
//-->
</script>
....
<form action="" method="post" name="register" onsubmit="return check()">
<input type="hidden" name="p_c1" value="ON">
<input type="text" name="aaa" size="40">
<input type="text" name="bbb" size="40">
<input type="text" name="ccc" size="40">
<input type="text" name="ddd" size="40">
....
<input type="checkbox" name="p_c2" value="ON" onclick="rakna(0)">
<input type="checkbox" name="p_c3" value="ON" onclick="rakna(0)">
<input type="checkbox" name="p_c4" value="ON" onclick="rakna(0)">
<input type="checkbox" name="p_c5" value="ON" onclick="rakna(0)">
osv...

------------------
//Mav

JohnsenMedlem sedan juli 2000836 inlägg
#7

Nja...
Så här:

<head>
<script language="JavaScript">
<!--
n=0
function rakna(w){
(document.foo.elements[w].checked==true)? n++ : n--;
}
function koll(){
if(n<2){alert("Minst 2 måste bockas!"); return false}
if(n>3){alert("Max 3 får bockas!"); return false}
}
//-->
</script>
</head>

<form action="" method="post" name="register" onsubmit="return check()">
<input type="hidden" name="p_c1" value="ON">
<input type="text" name="aaa" size="40">
<input type="text" name="bbb" size="40">
<input type="text" name="ccc" size="40">
<input type="text" name="ddd" size="40">
<input type="checkbox" name="p_c2" value="ON" onclick="rakna(5)">
<input type="checkbox" name="p_c3" value="ON" onclick="rakna(6)">
<input type="checkbox" name="p_c4" value="ON" onclick="rakna(7)">
<input type="checkbox" name="p_c5" value="ON" onclick="rakna(8)">
...

------------------
- J-O-H-N-S-E-N -
------------------

MavMedlem sedan juni 2000117 inlägg
#8

Funkar kanon nu men jag har ett annat problem. Har 2 script, ett som kontrollerar att alla fält är ifyllda och sedan det som kollar att endast 2 boxar är förkryssade. Problemet är att bara första kontrollen görs. Varför?

<script language="JavaScript">
<!-- Dölj

// Först här namnet på funktionen ( kontrollera ).

function kontrollera() {

// Här kontrolleras fältet namn så att det inte är tomt.

if (document.register.namn.value == "")
{ 
alert("Du har ej angett namn!")
return false; 
} 

// Här kontrolleras fältet adress så att det inte är tomt.

if (document.register.adr_1.value == "") 
{ 
alert("Du har ej angett adress!")
return false; 
} 

// Här kontrolleras fältet ort så att det inte är tomt.

if (document.register.ADR_2.value == "") 
{ 
alert("Du har ej angett ort!")
return false; 
}

// Här kontrolleras fältet epost så att det innehåller tecknet @.

if (document.register.EMAIL.value == "" &#0124;&#0124; 
document.register.EMAIL.value.indexOf('@', 0) == -1) 
{
alert("Ogiltig E-Post adress!"); return false; 
}

}
// -->
</SCRIPT>
<script language="JavaScript">
<!--
n=0
function rakna(w){
(document.register.elements[w].checked==true)? n++ : n--;
}
function koll(){
if(n<2){alert("Minst 2 måste bockas!"); return false}
if(n>2){alert("Max 2 får bockas!"); return false}
}
//-->
</script>
...
<form action="http://" method="post" name="register">
....
<input type="submit" value="GO" onclick="return kontrollera(); koll()" style="font-family: Verdana; font-size: 8pt">

------------------
//Mav

JohnsenMedlem sedan juli 2000836 inlägg
#9
<html>
<head>
<script language="JavaScript">
<!-- Dölj
n=0
function rakna(w){
(document.register.elements[w].checked==true)? n++ : n--;
}

function kontrollera() {
if (document.register.namn.value == ""){alert("Du har ej angett namn!"); return false;} 
if (document.register.adr_1.value == ""){alert("Du har ej angett adress!"); return false;} 
if (document.register.ADR_2.value == ""){alert("Du har ej angett ort!"); return false;}
if (document.register.EMAIL.value == "" &#0124;&#0124; document.register.EMAIL.value.indexOf('@', 0) == -1){
alert("Ogiltig E-Post adress!"); return false; }

if(n<2){alert("Minst 2 måste bockas!"); return false}
if(n>2){alert("Max 2 får bockas!"); return false}
}
//-->
</script>
</head>

<form action="http://" method="post" name="register" onsubmit="return kontrollera();">
<input type="text" name="namn"><br>
<input type="text" name="adr_1"><br>
<input type="text" name="ADR_2"><br>
<input type="text" name="EMAIL"><br>
<input type="checkbox" name="p_c1" value="A1" onclick="rakna(4)"><br>
<input type="checkbox" name="p_c2" value="A2" onclick="rakna(5)"><br>
<input type="checkbox" name="p_c3" value="A3" onclick="rakna(6)"><br>
<input type="checkbox" name="p_c4" value="A4" onclick="rakna(7)"><br>
<input type="checkbox" name="p_c5" value="A5" onclick="rakna(8)"><br>
<input type="submit" value="GO" style="font-family: Verdana; font-size: 8pt">
</form>

------------------
- J-O-H-N-S-E-N -
------------------

MavMedlem sedan juni 2000117 inlägg
#10

Funkar kanon!!!
Tusen tack!!

------------------
//Mav

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