Avatar billede cyberdude Nybegynder
07. marts 2002 - 23:08 Der er 4 kommentarer og
1 løsning

problem med at få registretet en variabel....

Hejsa!

Jeg har dette her script :

<HTML>
<HEAD>
<TITLE>Checkboxe</TITLE>
<SCRIPT LANGUAGE="JavaScript">
<!--
function check(f) {
var count=0;
if (f.elements.name=="kundegr" && f.elements.value=="1") {
maxCount=1;
}
if (f.elements.name=="kundegr" && f.elements.value=="2") {
maxCount=2;
}
  if (f.elements.name=="kundegr" && f.elements.value=="3") {
  maxCount=3;
  }
  if (f.elements.name=="kundegr" && f.elements.value=="4") {
  maxCount=99;
  }
        for (i=0;i<f.elements.length;i++) {
        if (f.elements[i].name=="levgr[]" && f.elements[i].checked) {
        count++;
        }
}
if (count > maxCount) {
alert("Du har klikket på "+count);
}
}
//-->
</SCRIPT>
</HEAD>
<BODY>
<form>
Pakke:<br>
<input type="radio" name="kundegr" value="1"> minimal<br>
<input type="radio" name="kundegr" value="2"> basis<br>
<input type="radio" name="kundegr" value="3"> plus<br>
<input type="radio" name="kundegr" value="4"> vip<br>
<input type="checkbox" name="levgr[]" value="6" onclick="check(this.form);"> Beklædning -> Dametøj<br>
<input type="checkbox" name="levgr[]" value="11" onclick="check(this.form);"> Beklædning -> Herretøj<br>
<input type="checkbox" name="levgr[]" value="17" onclick="check(this.form);"> Beklædning -> Lingeri<br>
<input type='checkbox' name='levgr[]' value='13' onclick="check(this.form);"> Beklædning -> Sko<br>
</form>
</BODY>
</HTML>

Jeg klikker på en af radio felterne.... for derefter at afkrydse i checkboxene... men når jeg sætter den første makering i checkboxen, får jeg denne fejl "maxCount er ikke defineret"

hvorfor er den ikke det.... det er ligesom om at den ikke registrere min radio button.. men hvordan får jeg scriptet til det ??
Avatar billede olebole Juniormester
07. marts 2002 - 23:17 #1
<ole>
Dit kald kunne se således ud:
  <input type="checkbox" name="levgr[]" value="6" onclick="check(this, this.form);">

Så kan du hente dine enkelte elementer således:
function check(elm, f) {
var count=0;
if (elm.name=="kundegr" && elm.value=="1") {
maxCount=1;
} ......osv, osv ......

Men din for-løkke er rigtig nok  ;o)
/mvh
</bole>
Avatar billede cyberdude Nybegynder
07. marts 2002 - 23:24 #2
har fået den til det....

Men nu er der så et andet problem
scriptet ser sådant her ud :
<HTML>
<HEAD>
<TITLE>Checkboxe</TITLE>
<SCRIPT LANGUAGE="JavaScript">
<!--
function check(f) {
var maxCount;
for( i = 0; i<f.kundegr.length; i++ ){
if( f.kundegr[i].checked ){
maxCount = f.kundegr[i].value;
break;
}
}
if( maxCount == 4 ){
maxCount = 99;
}
var count=0;
        for (i=0;i<f.elements.length;i++) {
        if (f.elements[i].name=="levgr[]" && f.elements[i].checked) {
        count++;
        }
        }
if (count > maxCount) {
alert("Du har klikket på "+count);
}
}
//-->
</SCRIPT>
</HEAD>
<BODY>
<form>
Pakke:<br>
<input type="radio" name="kundegr" value="1"> minimal<br>
<input type="radio" name="kundegr" value="2"> basis<br>
<input type="radio" name="kundegr" value="3"> plus<br>
<input type="radio" name="kundegr" value="4"> vip<br>
<input type="checkbox" name="levgr[]" value="6" onclick="check(this.form);"> Beklædning -> Dametøj<br>
<input type="checkbox" name="levgr[]" value="11" onclick="check(this.form);"> Beklædning -> Herretøj<br>
<input type="checkbox" name="levgr[]" value="17" onclick="check(this.form);"> Beklædning -> Lingeri<br>
<input type='checkbox' name='levgr[]' value='13' onclick="check(this.form);"> Beklædning -> Sko<br>
</form>
</BODY>
</HTML>


Men når så scriptet kommer med alert meddelsen skal jeg have den til at slette den makering der udløste alerten.. hvordan gør jeg det ?
Avatar billede cyberdude Nybegynder
07. marts 2002 - 23:28 #3
vihi.. så var den der squ. nu funger det......

<HTML>
<HEAD>
<TITLE>Checkboxe</TITLE>
<SCRIPT LANGUAGE="JavaScript">
<!--
function check( elem, frm) {
var maxCount;
for( i = 0; i<frm.kundegr.length; i++ ){
if( frm.kundegr[i].checked ){
maxCount = frm.kundegr[i].value;
break;
}
}
if( maxCount == 4 ){
maxCount = 99;
}
var count=0;
        for (i=0;i<frm.elements.length;i++) {
        if (frm.elements[i].name=="levgr[]" && frm.elements[i].checked) {
        count++;
        }
        }
if (count > maxCount) {
alert("Du har klikket på "+count);
elem.checked = !elem.checked;
}
}
//-->
</SCRIPT>
</HEAD>
<BODY>
<form name="frm">
Pakke:<br>
<input type="radio" name="kundegr" value="1"> minimal<br>
<input type="radio" name="kundegr" value="2"> basis<br>
<input type="radio" name="kundegr" value="3"> plus<br>
<input type="radio" name="kundegr" value="4"> vip<br>
<input type="checkbox" name="levgr[]" value="6" onclick="check(this, this.form);"> Beklædning -> Dametøj<br>
<input type="checkbox" name="levgr[]" value="11" onclick="check(this, this.form);"> Beklædning -> Herretøj<br>
<input type="checkbox" name="levgr[]" value="17" onclick="check(this, this.form);"> Beklædning -> Lingeri<br>
<input type='checkbox' name='levgr[]' value='13' onclick="check(this, this.form);"> Beklædning -> Sko<br>
</form>
</BODY>
</HTML>
Avatar billede cyberdude Nybegynder
07. marts 2002 - 23:30 #4
olebole -> du får point her, og så ikek i det andet spm. jeg har kørende i denn eher kat. da den methode jo ikek er blevet til noget!
Avatar billede olebole Juniormester
07. marts 2002 - 23:32 #5
No sweat ...... jeg 'sulter' jo ikke ligefrem  ;o)
/mvh
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester