Avatar billede kalaharikid Nybegynder
12. februar 2006 - 19:24 Der er 9 kommentarer og
1 løsning

switch check i checkbokse

jeg har en javascriptquiz hvor jeg bruger grafik og skjulte checkbokse (3 af gangen) til at validere. Men jeg er desværre ikke nogen ørn til de finere pointer i JS. Nu ville det bare være fantastisk hvis jeg kunne få javascriptet til at :

Unchecke de ikke valgte checkbokse så der kun kan være EN checkboks valgt af gangen.

Her er mit JS:

function checkUncheck(oImg, sChkId) {

var oChk = document.getElementById(sChkId);
    oChk.checked = !oChk.checked;
    oImg.src = (oChk.checked) ? "knapper/checked.gif" : "knapper/unchecked.gif";
   
    }


function valButton(btn) {
var cnt = -1;
for (var i=0; i < btn.length; i++) {
  if (btn[i].checked) {cnt = i; i = btn.length;}
  }
if (cnt > -1) return btn[cnt].value;
else return null;
}   
   
var Point=0;
var total

function playSound(soundobj) {
  var thissound=document.getElementById(soundobj);
  thissound.Play();
}

function Check(){
var correct=0;
var frms = document.getElementsByTagName("form");
for (var i=0;i<frms.length;i++) {
  var isFalse = false;
  var inputs=frms.item(i).getElementsByTagName("input");
  for (var j=1;j<inputs.length;j++) {
      if ((j%2==1)&&(!inputs.item(j).checked)&&(inputs.item(j-1).value != ""))
          isFalse=true;
      else if ((j%2==1)&&(inputs.item(j).checked)&&(inputs.item(j-1).value == ""))
          isFalse=true;
      }
    if (!isFalse){
                  correct++;
                }
 
}
var total = frms.length
var pc = (correct/total)*100
if    (pc == 100){
document.correct.play();
nemlig="images/right.gif";
document.images.answerpic.src= nemlig;
}
else {
document.wrong.play();   
nemlig="images/wrong.gif";
document.images.answerpic.src= nemlig;
}
Point=pc
}

PT bliver der kun udført unchecked/checked på den valgte og IKKE målt om der i forvejen er andre checkbokse der er checked. Håber nogen kan hjælpe med et regulært kodeforslag?

Se eksempel på quizzen her :

http://putandtake.dansk.nu/present3lytogklik_have01.asp

PS : Tror det er noget der svarer til SwitchAll i denne her der skal bruges : http://javascript.internet.com/forms/checkbox-changer.html
Avatar billede olebole Juniormester
12. februar 2006 - 19:30 #1
<ole>

Jamen, så er det vel radio-knapper, du har brug for. De er netop beregnet til, at man vælger én ud af en gruppe. Checkbox'e er derimod beregnet til, at man vælger en eller flere indenfor en gruppe.
Generelt er det sjældent formålstjenligt at ændre elementernes forventede virkemåde  :)

/mvh
</bole>
Avatar billede kalaharikid Nybegynder
12. februar 2006 - 19:34 #2
Fint nok eftersom checkboksene alligevel er hidden. hvad skal der så til for at javascriptet snakker radiobuttons udover  oChk.checked = !oChk.checked; ?
Avatar billede olebole Juniormester
12. februar 2006 - 19:38 #3
Ja - og du kan også se denne løsning, jeg lavede til en anden. Den virker med både grafiske checkbox'e og radio-buttons:
    http://www.eksperten.dk/spm/686760#rid6085796
Avatar billede kalaharikid Nybegynder
12. februar 2006 - 21:14 #4
Den er virkelig fed. Har skiftet checkUncheck functionen ud med din. Men nu driller de steder i Check () funtionen der bruger GetElementByTagName.Vil du hjælpe mig med at ændre dem så bliver jeg ovenud lykkelig. Demo med det nye kan beses på : http://putandtake.dansk.nu/radiotest.asp og js filen er på : http://putandtake.dansk.nu/JS/lytkliktest.js
Avatar billede olebole Juniormester
12. februar 2006 - 21:34 #5
Hvad skal funktionen gøre? Det er vist lettere  :)
Avatar billede kalaharikid Nybegynder
12. februar 2006 - 21:53 #6
Jamen den skal checke efter value=="-1" (rigtigt svar) og så udføre resten af scriptet. Afspil rigtigt/forkert lyd og ditto billede (kan man ikke bare rette den til?)
Avatar billede kalaharikid Nybegynder
17. februar 2006 - 20:40 #7
Nej? Men point skal du have for det fine script du har foræret mig. Drop et svar.
Avatar billede olebole Juniormester
17. februar 2006 - 20:46 #8
- ooops ... jeg har ikke set dit indlæg - og har desværre ikke så meget tid lige nu  :o|
Avatar billede kalaharikid Nybegynder
08. oktober 2006 - 11:30 #9
olebole, hvor er du? lukker snart, ...gi' lyd hvis du vil have dine vefortjente point!
Avatar billede olebole Juniormester
09. oktober 2006 - 12:56 #10
Hehe ... hvorfor lagde jeg dog ikke et svar sidst? ... sorry  :D
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