Avatar billede OWB Novice
21. november 2008 - 23:47 Der er 8 kommentarer og
1 løsning

Validering eller "huske på boks"

Hej

Er meget grøn i JavaScript, og har forgæves forsøgt at finde hjælp til følgende validering.

Har en form som indeholder i alt 4 tekstfelter, hvor de 3 er pre udfyldte (og skal være udfyldte), og den fjerde skal brugeren spørges om feltet ikke skal udfyldes, hvis formen forsøges postet uden at der er indtastet tal i det. Altså, det fjerde felt må gerne være tomt, men jeg vil gerne at brugeren bekræfter at det er meningen at det er tomt.

På forhånd tak for hjælp. :-)

Hilsner Ole
Avatar billede w13 Novice
22. november 2008 - 00:35 #1
Så du søger altså en JS-validering? :)

Prøv at vise din nuværende kode, så er det lettere.
Avatar billede w13 Novice
22. november 2008 - 00:35 #2
Og må der kun indtastes tal i det 4.?
Avatar billede tjens Nybegynder
22. november 2008 - 00:37 #3
<html>
<head>
<script type="text/JavaScript">
function foo() {
    alert ("Form Sendt");
}
</script>
</head>
<body>
  <form name="F1" action="java script:foo();">
    <input type="text" name="IT" value="" /><br />
    <button name="but" type="submit" style="cursor:pointer"
    onclick="if (document.F1.IT.value=='' &&  !confirm('Skal feltet være tomt?') ) { return false; }  return true;">OK</button>
<form>
</body>
</html>
Avatar billede w13 Novice
22. november 2008 - 00:49 #4
Men hvis der trykkes enter i stedet for submit, vil det jo ikke blive kørt.

Gør evt. sådan her:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<script type="text/javascript">
function OnlyNumbers(e){var charCode=e.which?e.which:event.keyCode;if(charCode>31&&(charCode<48||charCode>57))return false;return true}

function ValidateForm() {
    var o = null;
   
    o = document.getElementById("felt1");
    if (o.value == "") {
        alert("Felt 1 skal udfyldes!");
        o.focus();
        return false;
    }
   
    o = document.getElementById("felt2");
    if (o.value == "") {
        alert("Felt 2 skal udfyldes!");
        o.focus();
        return false;
    }
   
    o = document.getElementById("felt3");
    if (o.value == "") {
        alert("Felt 3 skal udfyldes!");
        o.focus();
        return false;
    }
   
    o = document.getElementById("felt4");
    if (o.value == "") {
        var bConfirm = confirm("Er du sikker på, du ikke vil udfylde felt 4?");
        o.focus();
        return bConfirm;
    }
   
    return true;
}
</script>
</head>
<body>
  <form action="side.php" onsubmit="return ValidateForm()">
    <input type="text" id="felt1" name="felt1" value="værdi1"><br>
    <input type="text" id="felt2" name="felt2" value="værdi2"><br>
    <input type="text" id="felt3" name="felt3" value="værdi3"><br>
    <input type="text" id="felt4" name="felt4" onkeypress="return OnlyNumbers(event)"><br>
    <button type="submit">OK</button>
  <form>
</body>
</html>
Avatar billede w13 Novice
22. november 2008 - 00:49 #5
Her sørges også for, at der ikke kan indtastes andet end tal i felt 4. (Hvis det ikke skal gælde, så fjer bare onkeypress-delen.
Avatar billede OWB Novice
22. november 2008 - 10:16 #6
Først og fremmest, mange tak for hurtigt svar.

W13, jeg valgte JS validering (måske i mangel på viden om alternativer?) fordi jeg tænkte det sikkert let lod sig gøre på denne måde. Har tidligere benyttet mig af det, når et tekstfelt skulle udfyldes, og altså ikke måtte stå tomt som for felt 1 + 2 + 3 i dette tilfælde.

Jeg benyttede w13's forslag, mest på grund af detaljen med [enter].

Smider du et svar w13?

Igen, tak for hjælpen.

God weekend, hilsner Ole
Avatar billede w13 Novice
22. november 2008 - 12:34 #7
Her er et svar! :)

Husk også, at JavaScript så let som ingenting kan slåes fra/fjernes af brugeren, så hvis du vil have sikkerhed, så valider også med ASP/PHP.
Avatar billede OWB Novice
22. november 2008 - 13:10 #8
Det er rigtigt, havde jeg egentlig ikke overvejet over hovedet. I dette tilfælde er jeg dog så heldig at sitet skal køre på et Intranet, hvor klient PC'en hvor fra sitet skal benyttes er meldt in i et AD hvormed jeg kan tvinge IE indstillingerne.
Avatar billede w13 Novice
22. november 2008 - 13:21 #9
Tak for points! :)
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

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