Avatar billede unsigned Nybegynder
24. november 2001 - 09:49 Der er 1 kommentar og
1 løsning

Validering af felt

Jeg er ved at lave et javascript, der kan kontrollere et felt for uønskede ord. Men jeg kan ikke rigtig få det til at virke. Har du nogle ideer til hvorfor det ikke virker?

Nedenfor et koden for siden angivet. Når brugeren trykker på submit, skal javascriptet kontrollerer om der er uønskede ord i feltet vittighed. Hvis der ikke er uønskede ord, skal formen submittes. Hvis der er uønskede ord, skal bruges se en alert box og formen skal ikke submittes.

<html>
<head>
<title>Sjov-vittig.dk</title>

<script language=javascript>
<!-- start skjule
function valider_vittighed(felt)
{
  // Hvis et ord står på listen i funktionen \'valider_ord\', så
  // returneres ordet, gemt i variablen resultat.
  // Hvis et ord ikke står på listen, så returneres resultat som
  // en tom streng
  var resultat = \"\" ;
  var liste = felt.split(\" \");
  for(i=0; i<liste.length; i++)
  {
      resultat = valider_ord(liste[i]) ;
      if (resultat != \"\")
      {
        return resultat ;
      }
  }
  return resultat ;

}
function valider_ord(streng)
{
  // Her er listen med uønskede ord. De uønskede ord er erstattet med
  // harmløse ord. Læseren kan selv sætte ord ind, der ikke
  // skal gemmes i databasen.
  if (streng == \"ordet\") return streng ;
  if (streng == \"ordet,\") return streng ;
  if (streng == \"ordet.\") return streng ;
  if (streng == \"ordto\") return streng ;
  if (streng == \"ordto,\") return streng ;
  if (streng == \"ordto.\") return streng ;
  if (streng == \"ordtre\") return streng ;
  if (streng == \"ordtre,\") return streng ;
  if (streng == \"ordtre.\") return streng ;
  return \"\" ;
}
function behandel_vittighed(form)
{
  // Formålet med javascriptet er at gennemse en tekst, feltet vittighed, for
  // uønskede ord.
  var res = valider_vittighed(form.vittighed.value) ;
  if (res = \"\")
  {
      // Hvis feltet \'indsender\' er blank, skrives \'Anonym\' i feltet.
      if (form.indsender.value = \"\")
      {
        form.indsender.value = \"Anonym\" ;
      }
      // Hvis feltet \'overskrift\' er blank, skrives \'Nummer xx\' i feltet.
      if (form.overskrift.value = \"\")
      {
        form.overskrift.value = \"Nummer xx\" ;
      }
      // Vis at vittigheden er sendt til databasen.
      alert(\"Vittigheden er sendt til databasen. Den kan ses om højest tre minutter.\") ;
      // Send vittighed til databasen.
      return true ;
  }
  else
  {
      // Vis at vittigheden ikke kunnne optages i databasen.
      // Det uønskede ord ligger i res.
      alert(\"Vittigheden kunne ikke optages i databasen. Den indeholder det
        uønskede ord \" + res + \".\") ;
      // Undlad at sende vittighedn til databasen
      return false ;
  }
}
// slut skjule -->
</script>

</head>
<body>

<hr />
<div align=\"center\">
<img src=\"images/logo001.gif\" alt=\"Sjov og vittig logo\" width=\"451\" height=\"80\" />
</div>
<hr />

<table>
<tr>

<th width=\"20\">
</th>

<th>
<div align=\"left\">
<form onsubmit=\"return behandel_vittighed(this);\" method=\"post\" action=\"mailto:zebu@mail.dk\">
<font size=\"4\">
<br />
Skriv overskrift her: <br /><input type=\"text\" size =\"50\" name=\"overskrift\"><br />
Hvis du ikke skriver noget, placeres teksten \"Nummer xx\" i feltet.<br /><br />
Skriv indsender her: <br /><input type=\"text\" size =\"50\" name=\"indsender\"><br />
Hvis du ikke skriver noget, placeres teksten \"Anonym\" i feltet.<br /><br />
Skriv vittighed her: <br /><textarea name=\"vittighed\" cols=\"50\" rows=\"10\"></textarea><br /><br />
<input type=\"submit\" value=\"Send.\"/>
<br />
<br />
<input type=\"reset\" value=\"Slet alle felter.\"/>
</font>
</form>
</th>

</body>
</html>

Avatar billede Slettet bruger
24. november 2001 - 10:46 #1
Du sammenligner forkert! Når man sammenligner to strenge, skal man bruge == og ikke = !
Din funktion behandel_vittighed() skal derfor se dåan her ud:

function behandel_vittighed(frm)
{
  // Formålet med javascriptet er at gennemse en tekst, feltet vittighed, for
  // uønskede ord.
  var res = valider_vittighed(frm.vittighed.value);
  if (res == \"\")
  {
      // Hvis feltet \'indsender\' er blank, skrives \'Anonym\' i feltet.
      if (frm.indsender.value == \"\")
      {
        frm.indsender.value = \"Anonym\" ;
      }
      // Hvis feltet \'overskrift\' er blank, skrives \'Nummer xx\' i feltet.
      if (frm.overskrift.value == \"\")
      {
        frm.overskrift.value = \"Nummer xx\" ;
      }
      // Vis at vittigheden er sendt til databasen.
      alert(\"Vittigheden er sendt til databasen. Den kan ses om højest tre minutter.\") ;
      // Send vittighed til databasen.
      return true;
  }
  else
  {
      // Vis at vittigheden ikke kunnne optages i databasen.
      // Det uønskede ord ligger i res.
      alert(\"Vittigheden kunne ikke optages i databasen. Den indeholder det uønskede ord \" + res + \".\");
      // Undlad at sende vittighedn til databasen
      return false;
  }
}
Avatar billede Slettet bruger
24. november 2001 - 10:47 #2
Med \"dåan\" mener jeg selvfølgelig \"sådan\"... :)
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