Avatar billede nielsgron Nybegynder
11. februar 2002 - 23:11 Der er 13 kommentarer og
1 løsning

validering af formfelt

På min web-site, skal brugerne kunne indtaste bl.a. et password, men det password må kun bestå af bogstaverne a-z, 0-9 plus bindestreg - . Hvordan får jeg javascript til, at tjekke det?
Avatar billede nielsgron Nybegynder
11. februar 2002 - 23:12 #1
jeg glemte at sige, at passwordet SKAL være på minimum 5 tegn!
Avatar billede zeth Nybegynder
11. februar 2002 - 23:26 #2
Hmm sådan her?

<html>

<head>
<script>
function dotjek(passwordet) {
    re = new RegExp("[a-z0-9]+\-{5,}");

    if(re.test(passwordet)) {
        alert('OK');
    } else {
        alert('ikke OK');
    }
}
</script>
</head>

<body>

<a href="#" onclick="dotjek('mitpassword')">hey</a>

</body>

</html>
Avatar billede nielsgron Nybegynder
12. februar 2002 - 00:33 #3
Den funger ikke helt.
Den afviser selvom det er et korrekt password.

Jeg vil gerne have det sådan, at valideringsscriptet bliver udført seperat. Så hvis passwordet er for kort kommer der en alert-box med det, og hvis der er brugt nogle "ulovlige" tegn så får man en alert-box med det.
Avatar billede anjensen1 Novice
12. februar 2002 - 13:12 #4
Langt nok password
læg dit password ind i et array tegn for tegn
brug .length metoden til at validere om password er >= 5 char

Korrekte tegn
tjek hvert tegn mod et array med de valide tegn
mvh/a.
Avatar billede nielsgron Nybegynder
12. februar 2002 - 15:17 #5
anjensen>> Jeg ved ikke hvordan jeg tjekker hvert tegn mod et array med de valide tegn!
Avatar billede anjensen1 Novice
12. februar 2002 - 15:25 #6
ok jeg klasker lige noget sammen
øjeblik..
Avatar billede anjensen1 Novice
12. februar 2002 - 15:36 #7
I det her accepterer jeg kun 0..9 som godkendte tegn men du kan bare udvide efter eget ønske i aray okTegn.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
    <TITLE>[valid password]</TITLE>
<STYLE TYPE="text/css">
</STYLE>

<SCRIPT TYPE="text/javascript">
<!--
var ok=false; //gælder for begge kontroller
okTegn=[0,1,2,3,4,5,6,7,8,9]; //de lovlige tegn i password udvid selv med flere tegn

function afbryd()
{
  alert('læs reglerne for passwords');
  enForm.pass.value='';
}


function langtNok(str)
{
if(str.length>=5) ok=true;
  if(ok==true) korrekteTegn(enForm.pass.value);
  else alert('Der er ikke nok tegn i dette password!');
}

function korrekteTegn(str)
{
var i=0;
//alert(str); //passwordet fjern den senere
  while (i<str.length)
    {
        for ( var tegn in okTegn )
        if (str.charAt( i ) == tegn) {ok=true; break;} else ok=false;
    if (ok==false) { alert('ulovligt password!'); afbryd(); break; }
  i++;   
    }
}

-->
</SCRIPT>

</HEAD>
<BODY>

<FORM NAME="enForm">
<P>dit password her <INPUT TYPE="password" SIZE="12" MAXLENGTH="12" NAME="pass">
<INPUT TYPE="button" VALUE="Tilmeld mig" NAME="accept" onclick="langtNok(pass.value)">
</FORM>

</BODY>
</HTML>

mvh/a.
Avatar billede nielsgron Nybegynder
12. februar 2002 - 19:31 #8
takker...
Avatar billede nielsgron Nybegynder
12. februar 2002 - 19:54 #9
Lige et lille sp. mere:
Hvad skal jeg skrive, hvis jeg vil tilføje bogstaverne?
Hvis jeg skriver:

okTegn=[0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f,g]; //o.s.v.

tror den at bogstaverne er variabler, og hvis jeg skriver:

okTegn=[0,1,2,3,4,5,6,7,8,9,'a','b','c','d','e']; //o.s.v

så siger den at tegnene a,b,c,d,e,f,g o.s.v er ulovlige?
Avatar billede anjensen1 Novice
13. februar 2002 - 17:04 #10
...øv?
har ikke lige tid til at kigge på det dag ser på det imorgen
Avatar billede anjensen1 Novice
14. februar 2002 - 16:56 #11
hej igen
naj den var mindre god.. :)
kort sagt var det iteratoren der blev tjekket mod passwordet
nå..
Det her er mere smidigt
Hvis der indtastes et forkert tegn siger den fra straks så fejlen ses før der submittes
håber den dur
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<STYLE TYPE="text/css">
</STYLE>

<SCRIPT TYPE="text/javascript">
<!--
var fejl=true;
var okTegn= ["1","2","3","4","5","6","7","8","9","a","b","c","d","§"]; //ethvert tegn

function op(){
}

function advarBruger()
{
alert('Ulovligt tegn i password');
enForm.tFelt.value="";
}

function tjeksize()
{
var str=enForm.tFelt.value;
if(str.length<5) alert('Der er ikke nok tegn i dette password!');
enForm.tFelt.value="";
}
     
function tjekLovlig()
{
  var streng = enForm.tFelt.value;
    var token = enForm.tFelt.value.charAt(enForm.tFelt.value.length-1)
  for (i=0; i<=okTegn.length; i++)
{ 
if ( token  == okTegn[i]) {fejl=false;  break;} else if(i>=okTegn.length) advarBruger();

}
}
-->
</SCRIPT>

</HEAD>
<BODY onload="op()">
<FORM NAME="enForm">
<INPUT TYPE="text" SIZE="10" NAME="tFelt" onkeyUp="java script:tjekLovlig()"></FORM>
<INPUT TYPE="button" VALUE="tilmeld" NAME="godkend" onclick="tjeksize()">



</BODY>
</HTML>

mvh/a.
Avatar billede nielsgron Nybegynder
14. februar 2002 - 19:52 #12
Hehe, det håber jeg også at den gør ;-)

Jeg kan desværre ikke tjekke det før på søndag, da jeg er hjemmefra indtil da. I'll be back!
Avatar billede nielsgron Nybegynder
20. februar 2002 - 15:30 #13
jep, nu virker det (YES!!!)

takker...
Avatar billede anjensen1 Novice
21. februar 2002 - 11:53 #14
selvtak :)
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