Avatar billede kokholm Nybegynder
09. april 2007 - 18:35 Der er 15 kommentarer og
1 løsning

Validering af form med radiobuttons

Hej jeg har en form indeholdende de sædvanlige felter navn , adresse, email osv.
Derudover har jeg også et par radiobuttons som jeg ønsker valdering af.
Hvordan får jeg dem kringlet med ind i denne validering som jeg i forvejen benytter?

<SCRIPT LANGUAGE="JavaScript1.2">     
<!--
function validate(form){
    if(form.elements[2].value==""){
        alert("Deres navn mangler !")
        return false
    }
   
    if(form.elements[3].value==""){
        alert("Deres adresse mangler !")
        return false
    }
   
    if(form.elements[4].value==""){
        alert("Postnr - By mangler !")
        return false
    }
   
    if(form.elements[5].value==""){
        alert("Deres telefonnummer mangler !")
        return false
    }
   
    if(form.elements[7].value==""){
        alert("Deres Email mangler !")
        return false
    }

// -->
</SCRIPT>

ONSUBMIT="return validate(this)

// Ole.
Avatar billede kokholm Nybegynder
09. april 2007 - 18:36 #1
Det skal lige nævnes at de to radiobuttons er sammenhængende og at der på forhånd ikke er valgt nogen.
Avatar billede thesurfer Nybegynder
09. april 2007 - 20:44 #2
Jeg synes at det er en dårlig måde at gøre det på..

Hvis du flytter rundt på felterne, får man forkerte fejlmeldinger..
Eksempel: man har glemt at skrive navnet, men den siger "Deres telefonnummer mangler !"..

I skal for at bruge elements[et-eller-andet-tal-her], bruge navnet på elementet:

<form name="frm" ... onsubmit="return validate(this)">
...
<input type="text" name="navn">
...
<input type="text" name="telefonnummer">

...
</form>

Så kan du bruge:

if (frm.navn.value == "")
{
alert("navn mangler");
return false;
}

if (frm.telefonnummer.value == "")
{
alert("tlf mangler");
return false;
}

osv..
Avatar billede thesurfer Nybegynder
09. april 2007 - 20:45 #3
Det samme kan du med radiobuttons..

<input type="radio" name="koen" value="mand">mand
<br>
<input type="radio" name="koen" value="kvinde">kvinde

og:

if (frm.koen.value == "")
{
alert("vælg mand eller kvinde");
return false;
}

Koden er utestet, men burde virke..

Hvis der er problemer, skriver du bare..
Avatar billede thesurfer Nybegynder
09. april 2007 - 21:08 #4
By the way.. hvis man skal kunne klikke på teksten også, skal du tilføje en label:

<input type="radio" name="koen" id="mand" value="mand"><label for="mand">mand</label>
<br>
<input type="radio" name="koen" id="kvinde" value="kvinde"><label for="kvinde">kvinde</label>

..mener jeg..

Jeg bruger ikke Label så tit..
Avatar billede kokholm Nybegynder
09. april 2007 - 21:56 #5
Hej,

Jeg har nu ændret det som du foreslår og indsat validering som du har skrevet - men af en eller anden grund springer den over valideringen af radiobuttons og går direkte til navn mv.

<SCRIPT LANGUAGE="JavaScript1.2">     
<!--
function validate(frm){

    if (frm.dokument.value == ""){
        alert("Du mangler at vælge ønsket pdf-dokument");
        return false;
    }

    if(frm.navn.value==""){
        alert("Dit navn mangler !")
        return false
    }
   
    if(frm.adresse.value==""){
        alert("Din adresse mangler !")
        return false
    }
   
    if(frm.pnrby.value==""){
        alert("Postnr - By mangler !")
        return false
    }
   
    if(frm.telefon.value==""){
        alert("Dit telefonnummer mangler !")
        return false
    }
   
    if(frm.email.value==""){
        alert("Din Email mangler !")
        return false
    }
    else
return true
}
// -->
</SCRIPT>
Avatar billede thesurfer Nybegynder
09. april 2007 - 22:40 #6
Du kan bare fjerne "else", og lade "return true" være der..

Hvis den ikke fanger en af de andre, vil den afvikle "return true"..
Avatar billede thesurfer Nybegynder
09. april 2007 - 22:41 #7
Hvordan ser din form egentligt ud?
Avatar billede roenving Novice
10. april 2007 - 00:39 #8
Med radiobuttons er du nødt til at teste på hver enkelt af dem, for at finde ud af, om der er checket en af dem af, med udgangspunkt i strandløvens (altså ukorrekte !-)

if(!frm.koen[0].checked && !frm.koen[1].checked){
  alert("Du skal angive, hvor køn du er !-)");
  frm.koen[0].focus();
  return false;
}

-- jeg har også indsat at der sættes focus på det relevante felt, det er en rigtig god ide, at brugeren direkte kan se, hvor det er, der er en lille fejl, og ikke skal gnnemtrawle formen, for at finde lige det felt !-)

-- for de fleste typer radiobuttons, der angives med mere end to bokse vil det være smart at starte med at sætte en af dem checked, for så kan man ikke uden mærkværdigheder undgå, at en af dem er checked, når formularen sendes !o]
Avatar billede kokholm Nybegynder
10. april 2007 - 06:10 #9
Hej,

På baggrund af roenvings svar virker valideringen af mine radiobuttons nu.
Smid gerne et svar begge to - så deler i pointene (thesurfer - du får point for at gøre mig opmærksom på at benytte feltnavne i stedet)

Tak for jeres hjælp begge to.

// Ole.
Avatar billede roenving Novice
10. april 2007 - 10:28 #10
Velbekomme '-)
Avatar billede thesurfer Nybegynder
10. april 2007 - 11:17 #11
kokholm> Jeg deler gerne med roenving

roenving> Ja, jeg glemte at det er en collection/samling, når man arbejder med radiobuttons.. :-)
Avatar billede kokholm Nybegynder
10. april 2007 - 19:50 #12
ups - thesurfer fik da vist lige hele posen med point.

Pyt jeg opretter et spørgsmål til roenving så han får ligeså...
Avatar billede thesurfer Nybegynder
10. april 2007 - 23:31 #13
kokholm> Jeg skal nok give roenving sine points..
Jeg opretter et spm til ham.. ingen grund til at bruge flere points.. :-)
Avatar billede roenving Novice
11. april 2007 - 04:14 #14
*lol*

-- hvornår gør du så det ?-)
Avatar billede thesurfer Nybegynder
11. april 2007 - 10:24 #15
Aldrig! :-)
Avatar billede thesurfer Nybegynder
11. april 2007 - 10:27 #16
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