Avatar billede aurum Nybegynder
17. april 2007 - 09:36 Der er 5 kommentarer og
1 løsning

Validering af felter i html-formular

Jeg har nogle felter, jeg validerer i min html-formular. Felterne valideres vha dette java script:

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

    if(f.Company.value==""){
    alert("Please enter Company");
    f.Company.focus();
    return false;
  }
    if(f.email.value==""){
    alert("Please enter a valid email address!");
    f.email.focus();
    return false;
 
  return true;
}
</script>

Jeg kalder scriptet fra Form-taggen med <... onsubmit="return valider(this);">

Derudover har jeg 3 andre felter (som jeg gerne vil bede om hjælp til), som jeg også gerne vil have valideret:

- En gruppe radioknapper, hvor jeg gerne vil have én af dem, SKAL vælges. Gruppen hedder 'PackingSize'.
- En rulleliste, som hedder 'Title'. Mindst én skal vælges (den består af værdierne 'Choose Title', 'Mr', 'Mrs', 'Miss')
- 2 checkboxe, hvor mindst én skal vælges ('Excipient' og/eller 'Active')
Avatar billede roenving Novice
18. april 2007 - 01:19 #1
Hrm, der mangler da vist lige en lukke-tuborg ...

Men ca. sådan:

<script type="text/javascript">
function valider(f){
  if(f.Company.value==""){
    alert("Please enter Company");
    f.Company.focus();
    return false;
  }
  if(f.email.value==""){
    alert("Please enter a valid email address!");
    f.email.focus();
    return false;
  }
  var pSize = f.PackingSize,pSizeSelected = false;
  for(i=0,im=pSize.length;im>i;i++)
    pSizeSelected = pSizeSelected || pSize[i].checked;
  if(!pSizeSelected){
    alert("Please select a Packing Size!");
    f.PackingSize[0].focus();
    return false;
  }
  if(f.Title.selectedIndex == -1){
    alert("Please select a Title!");
    f.Title.focus();
    return false;
  }
  if(!f.Excipient.checked || !f.Active.checked){
    alert("Please select Status!");
    f.Excipient.focus();
    return false;
  }
  return true;
}
</script>
Avatar billede aurum Nybegynder
18. april 2007 - 08:45 #2
Den var vist lige smuttet i kopieringen den lukke-tuborg (har nemlig ikke kopieret alle valideringerne med i scriptet, da de fleste lignede hinanden :-))

Mht checkboxene Excipient og Active, så tvinger den mig nu til at vælge begge to, før jeg kan komme videre. Kan det lade sig gøre, at jeg kan nøjes med kun at vælge den ene?

Mht rullelisten Title, så virker det ikke (jeg får ingen alertbox, selvom jeg ikke vælger en title), men måske er det en indstilling på min rulleliste. Den ser sådan ud i html:

<select size="1" name="Title">
<option>Choose Title</option>
<option value="Mr.">Mr.</option>
<option value="Miss">Miss</option>
<option value="Mrs.">Mrs.</option>
</select>

Mht packingsize: Den virker fint - dog stiller cursoren sig ikke i fokus... men det kan jeg leve med :-)
Avatar billede roenving Novice
18. april 2007 - 13:39 #3
Måske:

...
  if(f.Title.selectedIndex <= 0){
    alert("Please select a Title!");
    f.Title.focus();
    return false;
  }
  if(!f.Excipient.checked && !f.Active.checked){
...
Avatar billede aurum Nybegynder
18. april 2007 - 15:20 #4
Bingo, den er lige i skabet. Tusind tak :-)

Lægger du et svar?
Avatar billede roenving Novice
18. april 2007 - 15:23 #5
Velbekomme '-)
Avatar billede roenving Novice
18. april 2007 - 15:40 #6
-- og tak for point ;~}
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