Avatar billede xbobby Nybegynder
20. august 2003 - 20:32 Der er 9 kommentarer og
2 løsninger

Konflikt mellem to JavaScripts

Hej med jer

Jeg har 2 javascripts der hver for sig fungerer fint

Det første tjekker om der er en radiobutton der er trykket ned inden der trykkes på submit knappen.

Det andet sørger for at mine radio buttons er grafiske i stedet for de almindelige kedelige radio buttons.

Det der sker er, at når jeg har trykket på en radio button og så trykker på submit, så kommer der en alert box og i virkeligheden skulle jeg jo bare komme videre til næste side.

Så hvad gør jeg forkert og hvordan løser jeg problemet?

Her er de to script:

<script type="text/javascript">
function valider(frm) {
  for (i = 0; i < frm.svaerhedsgrad.length; i++)
    if (frm.svaerhedsgrad[i].checked)
      return true;
  alert("Husk at vælge sværhedsgrad!");
  return false;
}
</script>
   
<script type="text/javascript>
function grafikButtons(radioEl) {
    for(i=1; i<4; i++) {
        radio = 'radio'+i
        document.getElementById(radio).src = 'radio_off.gif';
    }
    document.getElementById(radioEl.id).src = 'radio_on.gif';
    document.gradForm.svaerhedsgrad.value = radioEl.id.charAt(5);
    }
</script>
Avatar billede mm12010 Nybegynder
20. august 2003 - 21:07 #1
function valider(frm){
for(i = 0; i < frm.svaerhedsgrad.length; i++){
    if(frm.svaerhedsgrad[i].checked==true){
        return true;
        }
    else{
        alert("Husk at vælge sværhedsgrad!");
        return false;
        }
    }
Avatar billede roenving Novice
21. august 2003 - 02:04 #2
Måske:

function valider(frm) {
  if (frm.svaerhedsgrad.value!="")
    return true;
  alert("Husk at vælge sværhedsgrad!");
  return false;
}

-- og mm

Hvilken forskel gør det at du spørger om sand er lig med sand ?-)

noget==true giver svaret true og så kan man ligesågodt nøjes med noget !-)

-- det er simpelthen overflødig kode ...
Avatar billede mm12010 Nybegynder
21. august 2003 - 08:01 #3
roenving >> tjaa... du siger noget der :o)
Avatar billede xbobby Nybegynder
21. august 2003 - 12:06 #4
Hej igen
Jeg har prøvet jeres forslag, men de virker ikke helt som de skal. Der sker det at fejlmeddelsen forsvinder men desværre også når der ikke er trykket på nogen radio buttons og der så trykkes på submit kanppen.

Jeg smider hele koden på, så er det nemmere at arbejde videre med også hvis der skulle være flere der har lyst til at deltage :-)

<html>
<head>
    <title>SIDE01</title>
    <script type="text/javascript">
function valider(frm) {
  for (i = 0; i < frm.svaerhedsgrad.length; i++)
    if (frm.svaerhedsgrad[i].checked)
      return true;
  alert("Husk at vælge sværhedsgrad!");
  return false;
}
    </script>
   
    <script type="text/javascript">
function radioToggle(radioEl) {
    for(i=1; i<4; i++) {
        radio = 'radio'+i
        document.getElementById(radio).src = 'radio_off.gif';
    }
    document.getElementById(radioEl.id).src = 'radio_on.gif';
    document.gradForm.svaerhedsgrad.value = radioEl.id.charAt(5);
}
</script>
</head>

<body>
<form name="gradForm" action="#" method="post" onSubmit="return valider(this);">
<input type='hidden' name='svaerhedsgrad' value='0'>
<img src='radio_off.gif' id='radio1' onclick='radioToggle(this); return false;'>&nbsp;Svar1<br>
<img src='radio_off.gif' id='radio2' onclick='radioToggle(this); return false;'>&nbsp;Svar2<br>
<img src='radio_off.gif' id='radio3' onclick='radioToggle(this); return false;'>&nbsp;Svar3<br>
<input type='submit' value='Se svaret'>
</form>

</body>
</html>

De to radio buttons kan hentes her:
http://www.webskabeloner.dk/001_grafik/radio_on.gif
http://www.webskabeloner.dk/001_grafik/radio_off.gif
Avatar billede roenving Novice
21. august 2003 - 14:08 #5
function valider(frm) {
  if (frm.svaerhedsgrad.value!="0")
    return true;
  alert("Husk at vælge sværhedsgrad!");
  return false;
}
Avatar billede mm12010 Nybegynder
21. august 2003 - 14:09 #6
<html>
<head>
<title>390197</title>
<script type="text/javascript">
function valider(frm){
    if(frm.svaerhedsgrad.value!="0"){
        return true;
        }
    else{       
        alert("Husk at vælge sværhedsgrad!");
        return false;
        }
    }

function radioToggle(radioEl){
    for(i=1; i<4; i++){
        radio = 'radio'+i
        document.getElementById(radio).src = 'radio_off.gif';
        }
    document.getElementById(radioEl.id).src = 'radio_on.gif';
    document.gradForm.svaerhedsgrad.value = radioEl.id.charAt(5);
    }
</script>
</head>
<body>
<form name="gradForm" action="#" method="post" onSubmit="return valider(this);">
<input type='hidden' name='svaerhedsgrad' value='0'>
<img src='radio_off.gif' id='radio1' onclick='radioToggle(this); return false;'>&nbsp;Svar1<br>
<img src='radio_off.gif' id='radio2' onclick='radioToggle(this); return false;'>&nbsp;Svar2<br>
<img src='radio_off.gif' id='radio3' onclick='radioToggle(this); return false;'>&nbsp;Svar3<br>
<input type='submit' value='Se svaret'>
</form>
</body>
</html>
Avatar billede xbobby Nybegynder
22. august 2003 - 10:12 #7
Begge løsninger fungerer perfekt. Tak for hjælpen til jer begge :-)

Som jeg ser det, har I hver fortjent 30 point, så hvis I ikke har nogen indvendinger, så smid et svar hver.

//xbobby
Avatar billede mm12010 Nybegynder
22. august 2003 - 10:15 #8
:o)
Avatar billede xbobby Nybegynder
23. august 2003 - 00:38 #9
Til roenvig
Smid et svar, så I kan få jeres point
//xbobby :-)
Avatar billede roenving Novice
23. august 2003 - 16:51 #10
Velbekomme '-)
Avatar billede roenving Novice
31. oktober 2003 - 00:56 #11
-- og tak for points ;~}
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