Avatar billede k2 Nybegynder
14. maj 2001 - 21:53 Der er 14 kommentarer og
1 løsning

svar på form-felter

Jeg har lavet en form, hvor man skriver navn, email og besked, og så er mit spørgsmål:
1.Hvordan laver jeg, så der kommer en fejlboks, hvis man ikke udfylder felterne navn, email eller besked, og der skal komme en fejlboks, hvis emailen ikke er korrekt(skal indeholde: xxx@xxx.xx).
2.Fejleboksen ved navn, besked og ukorrekt email, skal indeholde en tekst der forklarer hvad der er galt, og en OK knap, der sender en tilbage.
3.Hvis man ikke har skrevet noget i email, skal den boksen indeholde en tekst der forklarer hvad der er galt, og en OK knap - hvis man vil være anonym, og en tilbage knap - hvis man bare har glemt det.

Håber det er forståeligt, ellers så bare spørg :)
Avatar billede jakoba Nybegynder
14. maj 2001 - 23:04 #1
i head:
<script language=\'javascript\'> <!--

function validerForm( frm ) {
  if ( frm.navnFelt.value.length<1 ) { // navn felt ikke udfyldt
    alert( \"feltet Navn skal udfyldes.\" );
    frm.navnFelt.focus();
    return false;    // formen er ikke korrekt udfyldt.
  };

  if ( /^[\\w\\-\\.]+@[\\w\\-]\\.\\w{2,3}/.test(frm.emailFelt.value) ) {
                                          // emailfelt udfyldt forkert
    alert( \"feltet E-Mail skal udfyldes med en gyldig email adresse.\" );
    frm.emailFelt.focus();
    return false;    // formen er ikke korrekt udfyldt.
  };

  if ( frm.beskedFelt.value.length<1 ) { // besked felt ikke udfyldt
    alert( \"feltet Besked skal udfyldes.\" );
    frm.beskedFelt.focus();
    return false;    // formen er ikke korrekt udfyldt.
  };

  return true;  // alt er OK. afsend formdata.
}; //end validerForm( Form object ) -> boolean

// --> </script>

Der du laver din form skal felterne have hver deres  name=  parameter. med navn der svarer til dem der bruges i funktionen.
Og din <form kommando skal have en onsubmit= parameter:

<form ...  onsubmit=\"return validerForm(this);\">

Navn: <input name=\"navnFelt\" type=\'text\'><br>

E-Mail: <input name=\"emailFelt\" type=\'text\'><br>

Besked: <textarea name=\"beskedFelt\" rows=6 cols=50 wrap=\'physical\'></textarea>

</form>

mvh JakobA
Avatar billede jakoba Nybegynder
14. maj 2001 - 23:13 #2
How, læste ikke din punkt3 ordentligt:
udskift:

  if ( /^[\\w\\-\\.]+@[\\w\\-]\\.\\w{2,3}/.test(frm.emailFelt.value) ) {
                                          // emailfelt udfyldt forkert
    alert( \"feltet E-Mail skal udfyldes med en gyldig email adresse.\" );
    frm.emailFelt.focus();
    return false;    // formen er ikke korrekt udfyldt.
  };

med:
  if ( frm.emailFelt.value.length<1 ) {
    if ( confirm( \"Feltet E-Mail er ikke udfyldt.\\n\"
                  + \"tryk OK hvis du ønsker at være anonym\"
                  + \"tryk Annuler hvis du gerne vil udfylde feltet\" ) ) {
        // OK. så lad ham være anonym.
    } else {
      frm.emailFelt.focus();
      return false;    // han vil udfylde email.
    };
  } else
    if ( /^[\\w\\-\\.]+@[\\w\\-]\\.\\w{2,3}/.test(frm.emailFelt.value) ) {
                                          // emailfelt udfyldt forkert
      alert( \"feltet E-Mail skal udfyldes med en gyldig email adresse.\" );
      frm.emailFelt.focus();
      return false;    // formen er ikke korrekt udfyldt.
    };

mvh JakobA
Avatar billede nielsgron Nybegynder
16. maj 2001 - 19:46 #3
to spørgsmål:
1. Skal scriptet stå på den side hvor fejlen er, eller der hvor man bliver sendt hen, når man trykker send?

2. min form ser sådan ud, er det rigtigt?:
<form method=\"post\" action=\"forum.php onsubmit=\"return validerForm(this);\">
  Title:
  <input type=\"text\" name=\'titleFelt\'>
  <br>
  Navn:
  <input type=\"text\" name=\'navnFelt\'>
  <br>
  Email:
  <input type=\"text\" name=\'emailFelt\'>
  <br>
  Besked:
  <textarea name=\"beskedFelt\" rows=\"6\" cols=50 wrap=\'physical\'></textarea>
  <br>
  <input type=\"reset\" name=\"Reset\" value=\"Forfra\">
  <input type=\"submit\" name=\"Submit\" value=\"Send\">
</form>
Avatar billede jakoba Nybegynder
16. maj 2001 - 20:39 #4
scriptet skal stå på den side hvor formen er.
det er den rigtige onubmit event du har lagt ind.
og ja det det er de rigtige feltnavne. ( Du har tilføjet et fjerde felt  titleFelt  som jeg går ud fra er frivilligt om man vil udfylde og med hvad :-))

mvh JakobA
Avatar billede jakoba Nybegynder
16. maj 2001 - 20:41 #5
Hmm.. k2 stiller spørgsmål og så stiller nielsgron supplerende spørgsmål. Hvis du har mere end to brugere bør du pronto nedlægge den ene.
Avatar billede jakoba Nybegynder
16. maj 2001 - 20:42 #6
Ups. ikke \"mere end 2\" bare 2.
Avatar billede k2 Nybegynder
16. maj 2001 - 21:15 #7
Jeg er sgu da ikke også nieslgron. Det er bare en eller anden narrøv, der går ind og svarer på mit spørgsmål.
Hvis du vil have hjælp, så opret dit eget spørgsmål, istedet for at nasse på andres point, okay?

Forresten, så har jeg et problem. når jeg trykker på submit-knappen, så går den til til en side der hedder:
/sti/til/scriptet%20onsubmit=
Hvor der kommer en 404 fejlmeddelelse.
Hvad er der galt?
Avatar billede jakoba Nybegynder
16. maj 2001 - 21:31 #8
der mangler et \"-tegn efter forum.php
istedetfor:
<form method=\"post\" action=\"forum.php onsubmit=\"return validerForm(this);\">
skal der stå:
<form method=\"post\" action=\"forum.php\" onsubmit=\"return validerForm(this);\">

og slet så den nielsgron bruger, ikke :)

mvh JakobA
Avatar billede nielsgron Nybegynder
18. maj 2001 - 15:54 #9
Du har ret JakobA, nielsgron og K2 er én og samme person :)
Avatar billede k2 Nybegynder
18. maj 2001 - 18:45 #10
Hold nu kæft Nielsgron, det er sgu ikke sjovt!
Nåhh..men der er en lille fejl i scriptet, JakobA.
Man kan godt skrive en ugyldig email, uden den brokker sig.
Hvad skal ændres?
Avatar billede jakoba Nybegynder
18. maj 2001 - 19:15 #11
ja. betingelsen vendte den gale vej. og har ingen ende.
denne skulle virke lidt bedre

  if ( !/^[\\w\\-\\.]+@[\\w\\-]\\.\\w{2,3}$/.test(frm.emailFelt.value) ) {
Avatar billede k2 Nybegynder
19. maj 2001 - 18:04 #12
Jeg er totalt newbie, når det handler om Javascript, så vil du ikke nok tilpasse det til det du skrev før:

  if ( frm.emailFelt.value.length<1 ) {
    if ( confirm( \"Feltet E-Mail er ikke udfyldt.\\n\"
                  + \"tryk OK hvis du ønsker at være anonym\"
                  + \"tryk Annuler hvis du gerne vil udfylde feltet\" ) ) {
        // OK. så lad ham være anonym.
    } else {
      frm.emailFelt.focus();
      return false;    // han vil udfylde email.
    };
  } else
    if ( /^[\\w\\-\\.]+@[\\w\\-]\\.\\w{2,3}/.test(frm.emailFelt.value) ) {
                                          // emailfelt udfyldt forkert
      alert( \"feltet E-Mail skal udfyldes med en gyldig email adresse.\" );
      frm.emailFelt.focus();
      return false;    // formen er ikke korrekt udfyldt.
    };
Avatar billede jakoba Nybegynder
19. maj 2001 - 21:07 #13
  if ( frm.emailFelt.value.length<1 ) {
    if ( confirm( \"Feltet E-Mail er ikke udfyldt.\\n\"
                  + \"tryk OK hvis du ønsker at være anonym\\n\"
                  + \"tryk Annuler hvis du gerne vil udfylde feltet\" ) ) {
        // OK. så lad ham være anonym.
    } else {
      frm.emailFelt.focus();
      return false;    // han vil udfylde email.
    };
  } else
  if ( !/^[\\w\\-\\.]+@[\\w\\-]\\.\\w{2,3}$/.test(frm.emailFelt.value)  ) {
                                          // emailfelt udfyldt forkert
      alert( \"feltet E-Mail skal udfyldes med en gyldig email adresse.\" );
      frm.emailFelt.focus();
      return false;    // formen er ikke korrekt udfyldt.
  };
Avatar billede k2 Nybegynder
19. maj 2001 - 23:10 #14
Der er en lille fejl: Den siger også at email\'en er ugyldig, selvom man skriver en gyldig én!
Avatar billede k2 Nybegynder
05. juni 2001 - 17:31 #15
Tak for svaret. Du må undskylde, at der gik så lang tid inden du fik dine 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