Avatar billede sonic666 Novice
26. januar 2004 - 22:58 Der er 4 kommentarer og
1 løsning

Hvordan validerer man flere tekstfelter på samme side?

Jeg har fundet et java-script på html.dk til at validere et tekstfelt. Hvad gør jeg hvis jeg vil validere flere tekstfelter på samme side? Er det evt. noget i onsubmit, eller skal det laves helt om?

<body>
<script type="text/javascript">
function validering()
  {
  error = 0;
  if((document.forms[0].tekstfeltnavn.value=='') &&
  (error==0)) 
  {       
  alert('Tekstfeltet skal udfyldes!');
  document.forms[0].tekstfeltnavn.focus();
  error = 1;       
  }           
  if(error == 0)
  document.forms[0].submit();   
  }
</script>


<form action="" method="post" onsubmit="validering();return false;">
<input type="text" name="tekstfeltnavn">
<input type="submit" value="Klik her for at validere">
</form>

</body>
Avatar billede skovenborg Nybegynder
26. januar 2004 - 23:16 #1
Prøv:
<script type="text/javascript">
function validering(frm)
{
var sbmit = true;
for (i=0;i<frm.elements.length;i++) {
    if (frm.elements[i].type == "text") {
      if (frm.elements[i].value == '') {sbmit=false;alert('Du skal udfylde alle tekstfelterne');break;}
    }
}
return sbmit;
}
</script>

<form method="post" onsubmit="return validering(this);">
<input type="text" name="tekstfeltnavn">
<input type="text" name="tekstfeltnavn2">
<input type="text" name="tekstfeltnavn3">
<input type="submit" value="Klik her for at validere">
</form>
Avatar billede sonic666 Novice
27. januar 2004 - 12:47 #2
Dit script virker, men i min formular er det ikke alle tekstfelter der SKAL udfyldes. Det er faktisk kun 2 der er påkrævet. Det ville også være godt hvis der blev vist forskellige alerts alt efter hvilket af de 2 tekstfelter der mangler at blive udfyldt.

Kan man ikke lave 2 scripts og kalde dem begge med "onsubmit" ???

Håber nogle kan hjælpe
Avatar billede skovenborg Nybegynder
27. januar 2004 - 17:27 #3
man kan i hvert fald gøre sådan:
<script type="text/javascript">
var sbmit = true;
function validering(elmName,msg)
{
if (document.forms[0].elements[elmName].value.search(/\S/ig) == -1) {
        alert(msg);
        sbmit =  false;
        return false;
}
else return true;
}
</script>
<form action="http://www.google.com" method="post" name="form1" onsubmit="validering('tekstfeltnavn','Du skal udfylde tekstfeltnavn1');validering('tekstfeltnavn2','Du skal udfylde tekstfeltnavn2');temp_sbm = sbmit;sbmit=true;return temp_sbm;">
<input type="text" name="tekstfeltnavn">
<input type="text" name="tekstfeltnavn2">
<input type="text" name="tekstfeltnavn3">
<input type="submit" value="Klik her for at validere">
</form>

Det sidste er godt nok ikke så pænt (temp_sbm = sbmit;sbmit=true;return temp_sbm;) men jeg ville gerne lave det sådan at du ikke skal lave nye funktioner for hver eneste gang du skal teste et inputfelt.
Avatar billede sonic666 Novice
28. januar 2004 - 08:44 #4
Den virker! Tusind tag for det  :-)
Avatar billede skovenborg Nybegynder
28. januar 2004 - 12:42 #5
så svarer jeg lige - bare for sjov :-)
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