Avatar billede Slettet bruger
11. oktober 2002 - 12:49 Der er 10 kommentarer og
1 løsning

Check af gyldig e-mail adresse

Hvordan fletter jeg nedenstående script ind ved klik på en af knapperne:

<script language="JavaScript" type="text/javascript">

function valider (form) {

// test feltet email
var testresults
var str=document.form.email.value
var filter=/^.+@.+\..{2,3}$/
if (filter.test(str)) {

}
else{
alert("Du skal indtaste en gyldig e-mail adresse")
    document.form.email.focus();
      return false;
};
//slut test email

  return true;  // alle felter er ordentligt udfyldt
};

</script>


<form name="form1" action="nyhedsbrev.php" method="post">
<input type="hidden" name="send" value="jep">
<input type="hidden" name="valg" value="">
<table align="center" width="100%" cellspacing="0" cellpadding="2" border="0">
<tr><td align="right" width="150"><b>E-mailadresse:</b>&nbsp;</td><td><input type="text" name="email" style="width:80%"></td></tr>

<tr><td></td><td><input type="button" name="1" value="Tilmeld" class="knap" onclick="this.document.form1.valg.value=1;this.form.submit()">&nbsp;<input type="button" name="0" value="Frameld" class="knap" onclick="this.document.form1.valg.value=0;this.form.submit()"></td></tr>
</table>
</form>
Avatar billede hbhansen Nybegynder
11. oktober 2002 - 12:52 #1
<form name="form1" action="nyhedsbrev.php" method="post" onsubmit="valider(this);">
Avatar billede Slettet bruger
11. oktober 2002 - 13:04 #2
Hvis det bare var så nemt...

Prøv selv lige at lave et dokument med det.
Avatar billede hbhansen Nybegynder
11. oktober 2002 - 13:08 #3
Melder din browser ikke nogle fejl ?
Avatar billede hbhansen Nybegynder
11. oktober 2002 - 13:09 #4
Prøv lige at ændre navnet på din form til form istedet for form1, det skulle måske gøre det :-)
Avatar billede jakoba Nybegynder
11. oktober 2002 - 13:22 #5
i dine onclick blander du 2 måder at adressere:
    onclick="this.document.form1.valg.value=1;this.form.submit()"

du kan bruge enten en absolut adresse:
    document.form1.valg.value
eller du kan bruge en adresse reltiv til der hvor handleren står:
    this.form.valg.value

men du kan ikke skrive 'this.document'. der er ikke noget dokument-objekt indeni sådan en knap.

mvh JakobA
Avatar billede Slettet bruger
11. oktober 2002 - 13:22 #6
nope....

Det kom til at virke med det her:

<script language="JavaScript" type="text/javascript">

function valider (form1) {

// test feltet email
var testresults
var str=document.form1.email.value
var filter=/^.+@.+\..{2,3}$/
if (filter.test(str)) {
this.form1.submit();
}
else{
alert("Du skal indtaste en gyldig e-mail adresse")
    document.form1.email.focus();
      return false;
};
//slut test email

  return true;  // alle felter er ordentligt udfyldt
};

</script>

<form name="form1" action="nyhedsbrev.php" method="post">
<input type="hidden" name="send" value="jep">
<input type="hidden" name="valg" value="">
<table align="center" width="100%" cellspacing="0" cellpadding="2" border="0">
<tr><td align="right" width="150"><b>E-mailadresse:</b>&nbsp;</td><td><input type="text" name="email" style="width:80%"></td></tr>

<tr><td></td><td><input type="button" name="1" value="Tilmeld" class="knap" onclick="this.document.form1.valg.value=1;return valider(this);this.form1.submit()">&nbsp;<input type="button" name="0" value="Frameld" class="knap" onclick="this.document.form1.valg.value=0;return valider(this);this.form1.submit()"></td></tr>
</table>
</form>
Avatar billede hbhansen Nybegynder
11. oktober 2002 - 13:24 #7
Ok, det var det samme som at ændre formnavnet til form, men ok :-)
Avatar billede Slettet bruger
11. oktober 2002 - 13:29 #8
Det var ikke det samme.

Jeg har flyttet valider funktionen ned på de 2 knapper, og sat en this.form.submit() ind oppe i selve scriptet.
Avatar billede 1409 Praktikant
11. oktober 2002 - 15:41 #9
Lavede selv fornyligt et validerings-script, så det her virker med garanti:

<HTML>
<HEAD>
    <TITLE>Rytmeposten: Tip en ven - - </TITLE>
<SCRIPT LANGUAGE="JavaScript">
/* validering af formular */
<!-- Begin
function checkEmail(myForm) {
    if (!/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(myForm.email.value)){
        alert("UPS!\nDin e-mail addresse er altså ikke korrekt!");
        return(false);
    }
    else {
        return(true);
    }
}
//  End -->
</SCRIPT>

</HEAD>
<BODY>
<!-- webformular -->
<form name="form1" action="nyhedsbrev.php" method="post" onSubmit="return checkEmail(this)">
<input type="hidden" name="send" value="jep">
<input type="hidden" name="valg" value="">
<table align="center" width="100%" cellspacing="0" cellpadding="2" border="0">
<tr><td align="right" width="150"><b>E-mailadresse:</b>&nbsp;</td><td><input type="text" name="email" style="width:80%"></td></tr>

<tr><td></td><td><input type="submit" name="1" value="Tilmeld" class="knap">&nbsp;<input type="submit" name="0" value="Frameld" class="knap"></td></tr>
</table>
</form>
</BODY>
</HTML>

Bemærk bla. at "input type="button"" er ændret til "input type="submit"", hvilket var et af problemerne.
Scriptet er fleksibelt, da det ikke er afhængigt af formularens NAME.

1409
Avatar billede Slettet bruger
11. oktober 2002 - 15:46 #10
1409>

Meget fint, men jeg har jo fået det til at virke.

Du kan dog ikke have 2 submit buttons i samme form, og jeg mangler også at overfører værdien fra den knap man trykker på.

Så jeg lukker her.
Avatar billede jakoba Nybegynder
11. oktober 2002 - 15:49 #11
<script language="JavaScript" type="text/javascript">

function valider (form) {

        // test feltet email
    var str=document.form.email.value
    var filter=/^.+@.+\..{2,3}$/
    if ( ! filter.test(str) ) {
        alert("Du skal indtaste en gyldig e-mail adresse")
        document.form.email.focus();
        return false;  // forkert. må ikke sendes
    };
        //slut test email

    return true;  // alle felter er ordentligt udfyldt
};

</script>

<form name="form1" action="nyhedsbrev.php" method="post" onsubmit="return valider(this);">
<input type="hidden" name="send" value="jep">
<input type="hidden" name="valg" value="">
<table align="center" width="100%" cellspacing="0" cellpadding="2" border="0">
  <tr>
    <td align="right" width="150"><b>E-mailadresse:</b>&nbsp;</td><td><input type="text" name="email" style="width:80%"></td>
  </tr>
  <tr>
    <td></td><td><input type="submit" name="1" value="Tilmeld" class="knap">&nbsp;<input type="submit" name="0" value="Frameld" class="knap"></td>
  </tr>
</table>
</form>
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