Är lite nybörjare på javascript så får inte riktigt till min kontroll av checkboxs! Målet är att det finns 8 checkboxar med olika namn på sidan, Minst 3 av dessa måste vara ikryssade.
Har börjat fixa på en kod som vägrar fungera, inget händer när jag kör det.
i head:
<script language="javascript">
function formvalidation()
{
var e=o.document,
i=e.length,
ch=false;
while(i-->0)
{
if(e[i].type=="checkbox" && e[i].checked)
{
ch=true;
break;
}
}
if(!ch)
{
alert("Minst tre av \"checkboxarna\" måste vara ikryssad");
return false;
}
}
</script>
function formvalidation( f )
{
var e = f.elements,
len = e.length,
cnt = 0;
for ( var i = 0; i < len; i++ )
{
if ( e[i].type == "checkbox" && e[i].checked )
{
cnt++;
}
}
if ( cnt < 3 )
{
alert( "Minst tre av \"checkboxarna\" måste vara ikryssade" );
return false;
}
return true;
}
Hur skulle koden se om man har t.ex 15 kryssrutor, och man får kryssa i högst 5?
Den borde kolla om fler än 5 är ikryssad varje gång man klickar i en ny checkruta.. går det att göra?
Följande utgår från att regeln gäller samtliga checkboxar i ett formulär:
// Maximalt antal samtidigt ikryssade rutor
var numAllowed = 5;
var numChecked = 0;
window.onload = function(){
// Byt 'f' mot namnet på ditt formulär
var elms = document.forms["f"].elements,
i = elms.length;
while (i--){
if (elms[i].type == "checkbox"){
elms[i].onclick = function(){
if (!this.checked){
--numChecked;
} else {
if (numChecked == numAllowed){
alert("...");
this.checked = false;
} else {
++numChecked;
}
}
}
}
}
}