webForumDet fria alternativet

Max 2 checkboxar ikryssade

11 svar · 342 visningar · startad av Asa

AsaMedlem sedan dec. 20011 934 inlägg
#1

Har massa checkboxar där man med javascript vill kolla hur många boxar man fyllt i. Man ska bara kunna välja 2 av dessa och om man försöker välja en till så säger den att man bara fåt välja 2.

Hjälp tack :)

Jesper TMedlem sedan nov. 20017 058 inlägg
AsaMedlem sedan dec. 20011 934 inlägg
#3

Tackar :)

AsaMedlem sedan dec. 20011 934 inlägg
#4

Hur lägger jag in denna:

function checkboxcheck(obj){
	var nn=0;
	for(var n=0;n<obj.length;n++){
		nn+=(obj[n].type=="checkbox"&&obj[n].checked)?1:0;
	}
	return(nn);
}

i denna:

function SaveRest(){ 
        var elm = document.forms["form"].elements;

	if (document.form.namn.value==""){
		alert("Du glömde restaurangens namn!");
		return false;
	} else if (document.form.adress.value==""){
		alert("Du glömde skriva restaurangens adress!");
		return false;
	} else if (document.form.tel.value==""){
		alert("Du glömde skriva restaurangens telefonnummer!");
		return false;
	} else if (!/^(([\w])+([\.]){1})*([\w])+@([\w])+(([\.]{1})([A-Za-z]){2,4})+$/.test(elm["email"].value)) {
		alert("Du glömde skriva företagets email eller så är ej korrekt!");
		return false;
	} else if (!document.form.[url]www.value==[/url]""){
 		if (!/^http:\/\//.test(elm["www"].value)) {
			alert("Hemsideadressen måste börja med [url]http://[/url]");
			return false;
		}
	} else if (document.form.postnr.value==""){
		alert("Du glömde skriva restaurangens postnr!");
		return false;
	} else if (document.form.ort.value==""){
		alert("Du glömde skriva restaurangens ort!");
		return false;
	}
}
JojoxxMedlem sedan juni 20004 306 inlägg
#5
...
	} else if (checkboxcheck(document.forms["form"])!=2){
		alert("Du måste markera 2 checkboxar.");
		return false;
...
AsaMedlem sedan dec. 20011 934 inlägg
#6

Tack :)

AsaMedlem sedan dec. 20011 934 inlägg
#7

Men verkar ej funka :( Om man fyllt i fler än 2 ska alerten komma fram. Men din kod så kommer inget alls fram fast jag ej fyllt i nån! För din kollar ju att man måste fylla i minst 2.

Jesper TMedlem sedan nov. 20017 058 inlägg
#8

Detta då?

} else if (checkboxcheck(document.forms["form"])>2){
		alert("Du får max fylla i 2 checkboxar.");
		return false;
AsaMedlem sedan dec. 20011 934 inlägg
#9

Har redan testat det. Får inge javascriptfel eller alerten där det ska stå att man max får fylla i 2.

JojoxxMedlem sedan juni 20004 306 inlägg
#10

Jag läste det som att det bara fick vara 2, varken mer eller mindre. Mitt fel. Men annars ska det fungera. Exempel där bara checkbox-kollen är inlagt.

<script type="text/javascript">
function checkboxcheck(obj){
	var nn=0;
	for(var n=0;n<obj.length;n++){
		nn+=(obj[n].type=="checkbox"&&obj[n].checked)?1:0;
	}
	return(nn);
}
function SaveRest(){ 
	if (checkboxcheck(document.forms["form"])>2){
		alert("Du får max fylla i 2 checkboxar.");
		return false;
	}
}
</script>
<form action="foo.asp" onsubmit="return SaveRest();" name="form">
<input type="checkbox" name="a">
<input type="checkbox" name="b">
<input type="checkbox" name="c">
<input type="checkbox" name="d">
<input type="submit" value="Skicka">
</form>
JojoxxMedlem sedan juni 20004 306 inlägg
#11

Eller är det så att du bara vill kolla checkboxar med ett visst namn? I så fall blir det så här:

<script type="text/javascript">
function checkboxcheck(obj,name){
	var nn=0;
	for(var n=0;n<obj.length;n++){
		nn+=(obj[n].type=="checkbox"&&obj[n].checked&&(!name||name==obj[n].name))?1:0;
	}
	return(nn);
}
function SaveRest(){ 
	if (checkboxcheck(document.forms["form"],"a")>2){
		alert("Du får max fylla i 2 checkboxar.");
		return false;
	}
}
</script>
<form action="foo.asp" onsubmit="return SaveRest();" name="form">
<input type="checkbox" name="a">
<input type="checkbox" name="a">
<input type="checkbox" name="a">
<input type="checkbox" name="a">
<input type="submit" value="Skicka">
</form>
AsaMedlem sedan dec. 20011 934 inlägg
#12

Tackar, det sista vare.

Genererad på 369 ms · cache AV · v20260730165559-full.f96bc7eb