Avatar billede bongii Nybegynder
28. februar 2008 - 09:58 Der er 6 kommentarer og
1 løsning

Javascript validering

Hej.

Jeg vil gå væk fra asp validering og kaste mig over javascript, men ved ikke om det jeg havde tænkt mig kan lade sig gøre.

Når valideringen trikkes, skal der komme én popup der skriver alle de felter der mangler.

f.eks.

<form method="post">
<input type="text" name="test1">
<input type="text" name="test2">
</form>

Hvis der ikke er udfyldt noget i test1 eller test2 skal der komme en popup der skriver at der ikke er tilføjet noget i test1 og test2.

Hvis der kun er tilføjet noget i test1, skal popuppen kun skrive at der mangler noget i test2.

Kan det lade sig gøre? og hvordan?
Avatar billede roenving Novice
28. februar 2008 - 12:15 #1
Det kan sagtens lade sig gøre, og du kan også lave en rigelig god validering til, at du sørger for at betjene dine brugere på bedst mulig måde, men det kræver altså ikke den store nørdhed at kunne omgå den slags check, så du skal _absolut_ fortsætte med også at validere indhold også i dit serverside sprog !-)

-- finder lige et godt eksempel ...
Avatar billede roenving Novice
28. februar 2008 - 12:30 #2
Du kan finde et relativt omfattende eksempel i denne tråd: http://www.eksperten.dk/spm/524316

-- ellers kan du se hvordan det skal fungere med en simplere form her:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Check felter for udfyldelse med een advarsel</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="javascript" type="text/javascript">
function checkForm(f){
    var txt = "",fjl = null,fld;
    fld = f.test1;
    if(fld.value == "" || fld.value == fld.defaultValue){
      txt += "\n\t"+ fld.name + " skal udfyldes";
      if(!fjl)fjl = fld;
    }
/*Speciel test for f.eks. tal: */
    if(!fld.value.match(/^\d+$/)){
      txt += "\n\t"+ fld.name + " må kun indeholde tal";
      if(!fjl)fjl = fld;
    }

    fld = f.test2;
    if(fld.value == "" || fld.value == fld.defaultValue){
      txt += "\n\t"+ fld.name + " skal udfyldes";
      if(!fjl)fjl = fld;
    }

    if(txt!=""){
        txt = "Du mangler at udfylde/har udfyldt forkert i disse felter:\n"+txt+"\n\nAlle felter skal udfyldes";
        alert(txt);
        fjl.select();
        fjl.focus()
        return false;
    }
    return true;
}
</script>
</head>
<body>
<br>
<form id="minForm" name="minForm" action="" method="get" onsubmit="return checkForm(this);">
Input1: <input id="test1" name="test1" type="text" value="Kun tal" onfocus="if(this.value==this.defaultValue)this.value='';" onblur="if(this.value=='')this.value=this.defaultValue;" size="30"><br>
Input2: <input id="test2" name="test2" type="text" value="Skal udfyldes" onfocus="if(this.value==this.defaultValue)this.value='';" onblur="if(this.value=='')this.value=this.defaultValue;" size="30"><br>
<input type="submit" value="Send data">
</form>
</body>
</html>
Avatar billede bongii Nybegynder
28. februar 2008 - 20:21 #3
Dvs. man kan bare deaktivere Java Script, så kan man omgå?
Avatar billede w13 Novice
28. februar 2008 - 20:29 #4
Ja, det er den letteste løsning. Men du kan jo også bare rette i koden, hvis at skrive i adresselinjen. Prøv f.eks. på denne side at skrive:

java script:for(i=0,im=document.getElementsByTagName("div");i<im.length;i++){im[i].style.backgroundImage="url(http://hartungpress.dk/images/stories/Anders And.JPG)"}void(0)

og tryk enter. :)
Avatar billede bongii Nybegynder
04. marts 2008 - 14:17 #5
æv hvor irriterende :)

Tak for svar.
Avatar billede roenving Novice
04. marts 2008 - 15:41 #6
Velbekomme '-)
Avatar billede roenving Novice
04. marts 2008 - 16:16 #7
-- og tak for 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