Avatar billede sw_red_6 Nybegynder
29. august 2006 - 10:53 Der er 7 kommentarer og
2 løsninger

problem med fejl i inputfelt-validering

Jeg har det her kode:
<script type="text/javascript">
function validate_FEJL_6() {
  if (FEJL_6.TEXT != "") {
    alert("Tekstfelt er ikke tomt");
  }
}
</script>

<table cellpadding="0" cellspacing="0" border="0"><tr><td><INPUT type="Text" name="FEJL_6" size="30" value="<?php echo $FEJL_6; ?>" maxlength="60"></td></tr></table>

Det virker ikke helt efter hensigten. Når jeg trykker på det link hvor den funktion er tilknyttet så får jeg den alertboks ligegyldigt om det står noget i inputboksen eller ej. Hvor er det jeg har lavet en fejl??
Avatar billede mclemens Nybegynder
29. august 2006 - 11:07 #1
<script type="text/javascript">
function validate_FEJL_6() {
  if (document.getElementsByName("FEJL_6")[0].value != "") {
    alert("Tekstfelt er ikke tomt");
  }
}
</script>
Avatar billede mclemens Nybegynder
29. august 2006 - 11:08 #2
hvis feltet lægger i en formular kan du også:

<script type="text/javascript">
function validate_FEJL_6() {
  if (document.namepaaformularen.FEJL_6.value != "") {
    alert("Tekstfelt er ikke tomt");
  }
}
</script>
Avatar billede sw_red_6 Nybegynder
29. august 2006 - 11:11 #3
Jeg har selv fået det til at virke, men jeg har lidt kommentarer/spørgsmål de de svar.

Hvad er forskellen på document.getElementsByName("FEJL_6")[0].value og FEJL_6.value?
Ditto med document.namepaaformularen.FEJL_6.value
Hvorfor har i begge document. foran?
Avatar billede mclemens Nybegynder
29. august 2006 - 11:24 #4
getElementsById , getElementsByTagName , get ElementsByName samt formularer er alle noget der lægger på document objectet ... derfor document.

[ document.getElementsByName("FEJL_6")[0].value og FEJL_6.value ] Forskellen er at den ene har man fat i elementet - den anden har du ikke (har dog ikke testet om den sidst nævnte virker i IE - det gør den sikkert ... men det er ikke kode standard og virker bl.a. ikke i firefox - medmindre du fanger den via document.namepaaformularen.FEJL_6.value
Avatar billede sw_red_6 Nybegynder
29. august 2006 - 11:26 #5
Hvis jeg har den samme funktion hvordan kan jeg så nemmest lave den om så den tjekker FEJL_7 - FEJL_12?
Avatar billede mclemens Nybegynder
29. august 2006 - 11:44 #6
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="content-type" content="text/html; charset=iso-8859-1"><title>Ingen titel</title>

<script type="text/javascript">
function validate(t) {

  if (document.namepaaformularen[t].value != "") {
    alert("Tekstfelt er ikke tomt");
  }
}
</script>

</head><body>

<form name="namepaaformularen">
<table cellpadding="0" cellspacing="0" border="0"><tr><td><INPUT type="Text" name="FEJL_6" size="30" value="<?php echo $FEJL_6; ?>" maxlength="60"><br><INPUT type="Text" name="FEJL_7" size="30" value="<?php echo $FEJL_7; ?>" maxlength="60"></td></tr></table>
</form>



<b onclick="validate('FEJL_6');">test FEJL_6</b><br>
<b onclick="validate('FEJL_7');">test FEJL_7</b>
</body></html>
Avatar billede mclemens Nybegynder
29. august 2006 - 11:49 #7
og et andet eksempel med gennemløb:


<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="content-type" content="text/html; charset=iso-8859-1"><title>Ingen titel</title>

<script type="text/javascript">
function validate() {
  f=document.namepaaformularen;
  for(i=7;tn=f["FEJL_"+i];i++)if (tn.value != "") {
    alert("FEJL_"+i+" - Tekstfelt er ikke tomt");
  }
}
</script>

</head><body>

<form name="namepaaformularen">


<INPUT type="Text" name="FEJL_7" size="30" value="<?php echo $FEJL_7; ?>" maxlength="60"><br>
<INPUT type="Text" name="FEJL_8" size="30" value="<?php echo $FEJL_8; ?>" maxlength="60"><br>
<INPUT type="Text" name="FEJL_9" size="30" value="<?php echo $FEJL_9; ?>" maxlength="60"><br>
<INPUT type="Text" name="FEJL_10" size="30" value="<?php echo $FEJL_10; ?>" maxlength="60"><br>
<INPUT type="Text" name="FEJL_11" size="30" value="<?php echo $FEJL_11; ?>" maxlength="60"><br>
<INPUT type="Text" name="FEJL_12" size="30" value="<?php echo $FEJL_12; ?>" maxlength="60"><br>
</form>



<b onclick="validate();">test FEJL_7-12</b>
</body></html>
Avatar billede sw_red_6 Nybegynder
29. august 2006 - 12:17 #8
Tak jeg har fået det til at virke. Nu er det bare at få noget onblur til også at virke på samme inputfelter...
Avatar billede mclemens Nybegynder
29. august 2006 - 12:35 #9
Velbekom, og tak for point :o)




<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="content-type" content="text/html; charset=iso-8859-1"><title>Ingen titel</title>

<script type="text/javascript">
function validate(t) {

  if(t){if(t.value != "")alert(t.name+" - Tekstfelt er ikke tomt");

}else{

  f=document.namepaaformularen;

  for(i=7;tn=f["FEJL_"+i];i++)if (tn.value != "") {
    alert("FEJL_"+i+" - Tekstfelt er ikke tomt");
  }

}

}
</script>

</head><body>

<form name="namepaaformularen">


<INPUT type="Text" name="FEJL_7" size="30" onblur="validate(this);" value="<?php echo $FEJL_7; ?>" maxlength="60"><br>
<INPUT type="Text" name="FEJL_8" size="30" onblur="validate(this);" value="<?php echo $FEJL_8; ?>" maxlength="60"><br>
<INPUT type="Text" name="FEJL_9" size="30" onblur="validate(this);" value="<?php echo $FEJL_9; ?>" maxlength="60"><br>
<INPUT type="Text" name="FEJL_10" size="30" onblur="validate(this);" value="<?php echo $FEJL_10; ?>" maxlength="60"><br>
<INPUT type="Text" name="FEJL_11" size="30" onblur="validate(this);" value="<?php echo $FEJL_11; ?>" maxlength="60"><br>
<INPUT type="Text" name="FEJL_12" size="30" onblur="validate(this);" value="<?php echo $FEJL_12; ?>" maxlength="60"><br>
</form>



<b onclick="validate();">test FEJL_7-12</b>
</body></html>
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