Avatar billede Slettet bruger
30. oktober 2001 - 10:00 Der er 2 kommentarer og
1 løsning

Validreingvirker...næsten :P

Jeg har sammensat følg. kode ud fra noget gammelt arbejde og lidt nyt:

<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">

<html>
<head>
    <title>Untitled</title>
<script language=\"JavaScript1.2\" type=\"text/javascript\">

////////////////////Forklaring////////////////////////////////
//Her er en række forskellige funktioner som kaldes enkeltvis.
//Jeg forestiller mig at man må kunne kalde dem således:
// checkEmail();
// checkPassword();
// osv
//////////////////////////////////////////////////////////////


//funktion der tjekker at man har indtastet en gyldig e-mail adresse der ligner navn@udbyder.dk
//her skal formnavn og feltnavn tilpasses
function checkEmail() {

var str=document.form.email.value;
var filter=/^.+@.+\\..{2,3}$/;
    if (filter.test(str)) {
    } else {
    alert(\"Indtast venligst en gyldig E-mail adresse\");
    document.form.email.focus();
    return false;
    }
} //funktion slut



//funktion der tjekker for at både brugernavn og password er indtastet
//her skal formnavn, brugernavn og password tilpasses
function checkLogin() {

var str=document.form.brugernavn.value;
var str2=document.form.password.value;
    if (str != \'\' & str2 != \'\') {
    } else {
    alert(\"Du skal indtaste både dit brugernavn og dit password for at logge ind.\");
    document.form.brugernavn.focus();
    return false;
    }
} //funktion slut



//funktion der tjekker at man har indtastet et eller andet, tekst, tal eller andre tegn
//her skal formnavn og feltnavn tilpasses
function checkUdfyldt() {

var str=document.form.adresse.value;
    if (str > 0 ) {
    // alt ok han har skrevet noget
    } else {
    alert(\"Feltet Adresse skal udfyldes.\");
    document.form.adresse.focus();
    return false;
    }

} //funktion slut


//funktion der tjekker at man har indtastet samme password i begge felter
//her skal formnavn, password1 og password2 tilpasses
function checkDobbeltPassword() {

var pw1 = document.form.password1.value;
var pw2 = document.form.password2.value;

    if (pw1 == \'\') {
    alert (\"\\nDu skal indtaste et password i begge felterne.\");
    document.form.password1.focus();
    return false;
    }

    if (pw2 == \'\') {
    alert (\"\\nDu skal indtaste et password i begge felterne.\");
    document.form.password2.focus();
    return false;
    }

    if (pw1 != pw2) {
    alert (\"\\nDu skal indtaste det samme password i begge felterne.\");
    document.form.password1.focus();
    return false;
    }

} //funktion slut


//funktion der tjekker at man har valgt en værdi i en selectbox.
//Dette kræver at der er en option der ser således ud: <option value=\"0\" SELECTED>Default værdi</option>
//her skal formnavn og selectnavn tilpasses
function checkValgt() {
var valgt = document.form.selectnavn[0].selected;

    if (valgt != \"0\") {
    alert (\"\\nDu skal vælge en værdi i selectboxen.\")
    document.form.selectnavn.focus();
    return false;
    }

} //funktion slut



//funktion der tjekker at man har indtastet en talværdi i et felt
//Denne kan kaldes med checkTal(feltnavn);
function checkTal() {
var resultat = 1;
    if (!parseFloat(tal)) {
    //Det første tegn var ikke et tal
    resultat = 0;
    alert(\"Indtast venligst en talværdi\");
    form.tal.focus();
    } else {
    //Det første tegn var et tal så tjek nu resten
    for (var i=0; i<tal.length; i++) { // en for løkke der kører hele inputfeltets værdi igennem
        if ((tal.charAt(i) != \"0\") && (!parseFloat(tal.charAt(i)))) {
        resultat = 0;
        alert(\"Indtast venligst en talværdi\");
        form.tal.focus();
        return false;
        }
    }
}
} //funktion slut

</script>

<script>
function Validate() {
checkEmail();
checkLogin();
checkUdfyldt();
checkDobbeltPassword();
checkValgt();
checkTal();
return testresult;
}

</script>

</head>

<body>
<form name=\"form\" action=\"side.html\" method=\"post\" onsubmit=\"return Validate();\">
<table>
<tr>
<td colspan=\"2\">Tjekker for gyldig e-mail</td>
</tr>
<tr>
<td>E-mail:</td><td><input name=\"email\" type=\"text\"></td>
</tr>

<tr>
<td colspan=\"2\">Tjekker for indtastet brugernavn og password</td>
</tr>
<tr>
<td>Brugernavn:</td><td><input name=\"brugernavn\" type=\"text\"></td>
</tr>
<tr>
<td>Password:</td><td><input name=\"password\" type=\"text\"></td>
</tr>

<tr>
<td colspan=\"2\">Tjekker for indtastning i felt</td>
</tr>
<tr>
<td>Adresse:</td><td><input name=\"adresse\" type=\"text\"></td>
</tr>

<tr>
<td colspan=\"2\">Tjekker for samme password i begge felter</td>
</tr>
<tr>
<td>Brugernavn:</td><td><input name=\"password1\" type=\"text\"></td>
</tr>
<tr>
<td>Password:</td><td><input name=\"password2\" type=\"text\"></td>
</tr>

<tr>
<td colspan=\"2\">Tjekker for valg i selectbox</td>
</tr>
<tr>
<td>Alder:</td><td>
<select name=\"selectnavn\">
<option>Vælg din alder
<option value=\"10-20\">10-20
<option value=\"21-30\">21-30
<option value=\"31-40\">31-40
</select>
</td>
</tr>

<tr>
<td colspan=\"2\">Tjekker for indtastning af talværdi</td>
</tr>
<tr>
<td>Indtast postnummer:</td><td><input name=\"tal\" type=\"text\"></td>
</tr>

<tr>
<td>Adresse:</td><td><input name=\"adresse\" type=\"text\"></td>
</tr>

<tr>
<td></td><td><input type=\"submit\" value=\"send\"></td>
</tr>
</table>
</form>
</body>
</html>

Men jeg vil gerne have at der kun kommer en alerbox,og at mine funktioner virker...hvad går det galt?

Jeg har ikke mere brændstof i hjernen lige nu...
Avatar billede Slettet bruger
30. oktober 2001 - 10:00 #1
og mellemrumstasten på dether lortetatstaturvirker ikke ...
Avatar billede jakoba Nybegynder
30. oktober 2001 - 10:25 #2
husk i alle under-tests at returnere false såsnart noget går galt
OG returner true tilsidst hvis ingenting gik galt.

ligesom her:

function Validate() {
  if ( ! checkEmail() ) return false;
  if ( ! checkLogin() ) return false;
  if ( ! checkUdfyldt() ) return false;
  if ( ! checkDobbeltPassword() ) return false;
  if ( ! checkValgt() ) return false;
  if ( ! checkTal() ) return false;
  return true;
}

mvh JakobA
Avatar billede Slettet bruger
30. oktober 2001 - 10:56 #3
Tak for hjælpen, nu fik jeg det til at virke...:)

Forde interesserede:

<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">

<html>
<head>
    <title>Untitled</title>
<script language=\"JavaScript1.2\" type=\"text/javascript\">

////////////////////Forklaring////////////////////////////////
//Her er en række forskellige funktioner som kaldes enkeltvis.
//Jeg forestiller mig at man må kunne kalde dem således:
// checkEmail();
// checkPassword();
// osv
//////////////////////////////////////////////////////////////


//funktion der tjekker at man har indtastet en gyldig e-mail adresse der ligner navn@udbyder.dk
//her skal formnavn og feltnavn tilpasses
function checkEmail() {

var str=document.form.email.value;
var filter=/^.+@.+\\..{2,3}$/;
    if (filter.test(str)) {
    return true;
    } else {
    alert(\"Indtast venligst en gyldig E-mail adresse\");
    document.form.email.focus();
    return false;
    }
} //funktion slut



//funktion der tjekker for at både brugernavn og password er indtastet
//her skal formnavn, brugernavn og password tilpasses
function checkLogin() {

var str=document.form.brugernavn.value;
var str2=document.form.password.value;
    if (str != \'\' & str2 != \'\') {
    return true;
    } else {
    alert(\"Du skal indtaste både dit brugernavn og dit password for at logge ind.\");
    document.form.brugernavn.focus();
    return false;
    }
} //funktion slut



//funktion der tjekker at man har indtastet et eller andet, tekst, tal eller andre tegn
//her skal formnavn og feltnavn tilpasses
function checkUdfyldt() {

var str=document.form.adresse.value;
    if (str == \'\') {
    alert(\"Feltet Adresse skal udfyldes.\");
    document.form.adresse.focus();
    return false;
    } else {
    // alt ok han har skrevet noget
    return true;
    }

} //funktion slut


//funktion der tjekker at man har indtastet samme password i begge felter
//her skal formnavn, password1 og password2 tilpasses
function checkDobbeltPassword() {

var pw1 = document.form.password1.value;
var pw2 = document.form.password2.value;

    if (pw1 == \'\') {
    alert (\"\\nDu skal indtaste et password i begge felterne.\");
    document.form.password1.focus();
    return false;
    } else {
    }

    if (pw2 == \'\') {
    alert (\"\\nDu skal indtaste et password i begge felterne.\");
    document.form.password2.focus();
    return false;
    } else {
    }

    if (pw1 != pw2) {
    alert (\"\\nDu skal indtaste det samme password i begge felterne.\");
    document.form.password1.focus();
    return false;
    } else {
    return true;
    }

} //funktion slut


//funktion der tjekker at man har valgt en værdi i en selectbox.
//Dette kræver at der er en option der ser således ud: <option value=\"0\" SELECTED>Default værdi</option>
//her skal formnavn og selectnavn tilpasses
function checkValgt() {
if (document.form.alder.selectedIndex==0) {
    alert (\"\\nDu skal vælge en værdi i selectboxen.\")
    document.form.alder.focus();
    return false;
    } else {
    return true;
    }

} //funktion slut



//funktion der tjekker at man har indtastet en talværdi i et felt
//Denne kan kaldes med checkTal();
function checkTal() {
var resultat = 1;
var tal = document.form.tal.value;
    if (!parseFloat(tal)) {
    //Det første tegn var ikke et tal
    resultat = 0;
    alert(\"Indtast venligst en talværdi\");
    document.form.tal.focus();
    } else {
    //Det første tegn var et tal så tjek nu resten
    for (var i=0; i<tal.length; i++) { // en for løkke der kører hele inputfeltets værdi igennem
        if ((tal.charAt(i) != \"0\") && (!parseFloat(tal.charAt(i)))) {
        resultat = 0;
        alert(\"Indtast venligst en talværdi\");
        document.form.tal.focus();
        return false;
        } else {
        return true;
        }
    }
}
} //funktion slut

</script>

<script>
function Validate() {
  if ( ! checkEmail() ) return false;
  if ( ! checkLogin() ) return false;
  if ( ! checkUdfyldt() ) return false;
  if ( ! checkDobbeltPassword() ) return false;
  if ( ! checkValgt() ) return false;
  if ( ! checkTal() ) return false;
  return true;
}

</script>

</head>

<body>
<form name=\"form\" action=\"side.html\" method=\"post\" onsubmit=\"return Validate();\">
<table>
<tr>
<td colspan=\"2\">Tjekker for gyldig e-mail</td>
</tr>
<tr>
<td>E-mail:</td><td><input name=\"email\" type=\"text\"></td>
</tr>

<tr>
<td colspan=\"2\">Tjekker for indtastet brugernavn og password</td>
</tr>
<tr>
<td>Brugernavn:</td><td><input name=\"brugernavn\" type=\"text\"></td>
</tr>
<tr>
<td>Password:</td><td><input name=\"password\" type=\"text\"></td>
</tr>

<tr>
<td colspan=\"2\">Tjekker for indtastning i felt</td>
</tr>
<tr>
<td>Adresse:</td><td><input name=\"adresse\" type=\"text\"></td>
</tr>

<tr>
<td colspan=\"2\">Tjekker for samme password i begge felter</td>
</tr>
<tr>
<td>Password:</td><td><input name=\"password1\" type=\"text\"></td>
</tr>
<tr>
<td>Password igen:</td><td><input name=\"password2\" type=\"text\"></td>
</tr>

<tr>
<td colspan=\"2\">Tjekker for valg i selectbox</td>
</tr>
<tr>
<td>Alder:</td><td>
<select name=\"alder\">
<option value=\"\">Vælg alder
<option value=\"10-20\">10-20
<option value=\"21-30\">21-30
<option value=\"31-40\">31-40
</select>
</td>
</tr>

<tr>
<td colspan=\"2\">Tjekker for indtastning af talværdi</td>
</tr>
<tr>
<td>Indtast postnummer:</td><td><input name=\"tal\" type=\"text\"></td>
</tr>

<tr>
<td></td><td><input type=\"submit\" value=\"send\"></td>
</tr>
</table>
</form>
</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