Avatar billede cowboy Nybegynder
25. oktober 2005 - 13:11 Der er 3 kommentarer og
1 løsning

Validering af form

Hej,

Er der nogen der kan hjælpe mig med at gøre mit javascript mere brugervenligt:

//Validering af konkurence
if(!document.konkurrence2005.spg_1[0].checked && !document.konkurrence2005.spg_1[1].checked && !document.konkurrence2005.spg_1[2].checked){
    alert("*Husk at svarer på spørgsmål 1");
    }
if(!document.konkurrence2005.spg_2[0].checked && !document.konkurrence2005.spg_2[1].checked && !document.konkurrence2005.spg_2[2].checked){
    alert("*Husk at svarer på spørgsmål 2");
    }
if(!document.konkurrence2005.spg_3[0].checked && !document.konkurrence2005.spg_3[1].checked && !document.konkurrence2005.spg_3[2].checked){
    alert("*Husk at svarer på spørgsmål 3");
    }
if(!document.konkurrence2005.spg_4[0].checked && !document.konkurrence2005.spg_4[1].checked && !document.konkurrence2005.spg_4[2].checked){
    alert("*Husk at svarer på spørgsmål 4");
    }

Lige nu kommer der 4 alerts efter hinanden hvis man ikke har udfyldt et af spørgsmålene. Kna man ikke samle det i en alert boks? - Hvordan?
Avatar billede plx Nybegynder
25. oktober 2005 - 13:20 #1
start med at oprette en tom streng

var errmsg = "";
og tilføj til denne hver gang i stedet for
errmsg += "Husk at ...\n";

til sidst
if(errmsg != "") alert(errmsg);
Avatar billede roenving Novice
25. oktober 2005 - 13:54 #2
Return false, hvis ikke valideringen går godt !-)

-- og nu ved jeg ikke hvordan di form iøvrigt ser ud, men det kunne se ud til, at den kunne gøres adskilligt lettere:

I form-tagget kalder du valideringen:

<form name="konkurrence2005" action=" ... " method="post" onsubmit="return valider(this);">

-- så laver du valideringen sådan:

<script type="text/javascript">
function valider(f){

  /*Dine andre valideringer, f.eks.
  if(f.navn.value == ""){
    alert("Du skal udfylde dit navn for at deltage i konkurrencen");
    f.navn.focus();
    return false;
  }
  Udkommentering slutter her */

  //Validering af konkurence
  var numQs = 4; //Antallet af spørgsmål
  var valid,elms;
  for(i=1; i <= numQs; i++){
    elms = f.elements["spg_"+i], valid = false;
    for(j=0; j < elms.length; j++){
      valid = valid || elms[j].checked;
    }
    if(!valid){
      alert("Husk at svare på spørgsmål " + i);
      elms[0].focus();
      return false;
    }
  }
  return true;
}
</script>
Avatar billede cowboy Nybegynder
25. oktober 2005 - 20:04 #3
Så fik jeg sat det sammen. tak for hjælpen begge to. jeg endte med at bruge plx's svar.

var errmsg = "";

   
//Validering af konkurence
if(!document.konkurrence2005.spg_1[0].checked && !document.konkurrence2005.spg_1[1].checked && !document.konkurrence2005.spg_1[2].checked){
    errmsg += "*Husk at svarer på spørgsmål 1.\n";
    }
if(!document.konkurrence2005.spg_2[0].checked && !document.konkurrence2005.spg_2[1].checked && !document.konkurrence2005.spg_2[2].checked){
    errmsg += "*Husk at svarer på spørgsmål 2.\n";
    }
if(!document.konkurrence2005.spg_3[0].checked && !document.konkurrence2005.spg_3[1].checked && !document.konkurrence2005.spg_3[2].checked){
    errmsg += "*Husk at svarer på spørgsmål 3.\n";
    }
if(!document.konkurrence2005.spg_4[0].checked && !document.konkurrence2005.spg_4[1].checked && !document.konkurrence2005.spg_4[2].checked){
    errmsg += "*Husk at svarer på spørgsmål 4.\n";
    }
if(errmsg != "") {
    alert(errmsg);
    return false;
Avatar billede cowboy Nybegynder
28. november 2006 - 21:59 #4
Lukker
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