/ Forside / Teknologi / Udvikling / Java Scripts / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java Scripts
#NavnPoint
molokyle 5410
Klaudi 2799
smorch 2439
kim 1360
Harlekin 1134
bentjuul 984
gibson 800
severino 695
Random 675
10  konsulent.. 626
Validering af tekstfelt
Fra : Don_Q


Dato : 08-04-04 16:43

Hej gruppe.

Hvordan validerer jeg et tekstfelt så der ikke kan skrives æ,ø
eller å i tekstfeltet?

Jeg bruger denne kode:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"
lang="en">
<head>
</head>
<body>

<script type="text/javascript">
<!-- Dette script og mange flere -->
<!-- findes hos http://www.html.dk -->
<!-- Start

function validering()
{
error = 0;
if((document.forms[0].userfile.value=='') && (error==0))
{      
alert(Du må ikke bruge æ, ø eller å. Omdøb filnavnet om om
prøv igen.');
document.forms[0].userfile.focus();
error = 1;      
}         

if(error == 0)
document.forms[0].submit();   
}

// Slut -->
</script>




Når jeg prøver at ændre i det her, med fx:

if((document.forms[0].userfile.value=='ø') && (error==0))

, så virker det også, men kun hvis der så står "ø" alene i
tekstfeltet. Jeg ville gerne have det sådan at hvis "ø" fx indgik
i en hel sætning, at der så kom en fejlmeddelelse.

Håber i kan hjælpe..

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Jonas Schmeltz Aaber~ (08-04-2004)
Kommentar
Fra : Jonas Schmeltz Aaber~


Dato : 08-04-04 21:27

Don_Q wrote in dk.edb.internet.webdesign.clientside:
> Hej gruppe.
>
> Hvordan validerer jeg et tekstfelt så der ikke kan skrives æ,ø
> eller å i tekstfeltet?
> alert(Du må ikke bruge æ, ø eller å. Omdøb filnavnet om om

Husk '-tegn i starten også:
alert('Du må ikke bruge æ, ø eller å......');


> Når jeg prøver at ændre i det her, med fx:
>
> if((document.forms[0].userfile.value=='ø') && (error==0))
>
> , så virker det også, men kun hvis der så står "ø" alene i
> tekstfeltet. Jeg ville gerne have det sådan at hvis "ø" fx indgik
> i en hel sætning, at der så kom en fejlmeddelelse.

Nemlig!
Når du anvender if (document.forms[0].userfile.value=='ø'), tester
du, om værdien af tekstfeltet er eksakt 'ø'.
Men du er interesseret i at finde et æ, ø eller å et vilkårligt sted
i feltet.
Til dette kan du bruge indexOf-funktionen, eller et regulært udtryk
(regular expressions, RegExp).

Først indexOf():

if (document.forms[0].userfile.value.indexOf('ø') > -1) {
// fejl!
}

indexOf()-funktionen returnerer placeringen af ø'et. Hvis det ikke
er fundet bliver -1 returneret.


RegExp:

Først skal vi oprette et regulært udtryk:
re = new RegExp("[æøå]","i");

Første parameter angiver, at vi er interesserede i enten æ, ø eller
å, og den anden parameter sikrer, at der søges både efter store og
små bogstaver (i = ignore case).
Vi kunne også have tilføjet et g (global søgning), men vi behøver
kun ét tilfælde af bogstaverne, for at udskrive en fejl.
Så til det sjove:

if (re.test(document.forms[0].userfile.value)) {
// fejl
}


Så håber jeg, du selv kan implementere en af metoderne i din
validering, ellers er du meget velkommen til at spørge igen!

MVH Jonas (aka Juke)

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Don_Q (09-04-2004)
Kommentar
Fra : Don_Q


Dato : 09-04-04 18:21


> Nemlig!
> Når du anvender if (document.forms[0].userfile.value=='ø'), tester
> du, om værdien af tekstfeltet er eksakt 'ø'.
> Men du er interesseret i at finde et æ, ø eller å et vilkårligt sted
> i feltet.
> Til dette kan du bruge indexOf-funktionen, eller et regulært udtryk
> (regular expressions, RegExp).
>
> Først indexOf():
>
> if (document.forms[0].userfile.value.indexOf('ø') > -1) {
> // fejl!
> }
>
> indexOf()-funktionen returnerer placeringen af ø'et. Hvis det ikke
> er fundet bliver -1 returneret.
>
>
> RegExp:
>
> Først skal vi oprette et regulært udtryk:
> re = new RegExp("[æøå]","i");
>
> Første parameter angiver, at vi er interesserede i enten æ, ø eller
> å, og den anden parameter sikrer, at der søges både efter store og
> små bogstaver (i = ignore case).
> Vi kunne også have tilføjet et g (global søgning), men vi behøver
> kun ét tilfælde af bogstaverne, for at udskrive en fejl.
> Så til det sjove:
>
> if (re.test(document.forms[0].userfile.value)) {
> // fejl
> }
>
>
> Så håber jeg, du selv kan implementere en af metoderne i din
> validering, ellers er du meget velkommen til at spørge igen!
>

Tak for hjælpen og forklaringen, men jeg har lidt problemer med hvordan
koden skal se ud (hvor der skal rettes i koden).

Jeg er helt ny i javascript, men jeg kan godt forstå forklaringen (tror
jeg).

Skal koden se ud lidt alla det her:?


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
</head>
<body>

<script type="text/javascript">
<!-- Start

function validering()
{

re = new RegExp("[æøå]","i");

error = 0;
if((document.forms[0].userfile.value=='') && (error==0))
{      
alert('Tekstfeltet skal udfyldes!');
document.forms[0].userfile.focus();
error = 1;      
}         

if (re.test(document.forms[0].userfile.value)) {
// fejl
}

// Slut -->
</script>


Er jeg langt ude i skoven?


--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Jonas Schmeltz Aaber~ (19-04-2004)
Kommentar
Fra : Jonas Schmeltz Aaber~


Dato : 19-04-04 16:08


> Tak for hjælpen og forklaringen, men jeg har lidt problemer med
hvordan
> koden skal se ud (hvor der skal rettes i koden).
>
> Jeg er helt ny i javascript, men jeg kan godt forstå forklaringen
(tror
> jeg).
>
> Skal koden se ud lidt alla det her:?
>
>
> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN">
> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
> <head>
> </head>
> <body>
>
> <script type="text/javascript">
> <!-- Start
&gt;
&gt; function validering()
&gt; {
&gt;
&gt; re = new RegExp("[æøå]","i");
&gt;
&gt; error = 0;
&gt; if((document.forms[0].userfile.value=='') && (error==0))
&gt; {      
&gt; alert('Tekstfeltet skal udfyldes!');
&gt; document.forms[0].userfile.focus();
&gt; error = 1;      
&gt; }         
&gt;
&gt; if (re.test(document.forms[0].userfile.value)) {
&gt; // fejl
&gt; }
&gt;
&gt; // Slut -->
> </script>
>
>
> Er jeg langt ude i skoven?

Nej, du er ikke langt ude i skoven.
Prøv at se her:

<script type="text/javascript">
function validering() {
re = new RegExp("[æøå]","i");
error = 0;
elem = document.forms[0].userfile;
if (elem.value=='') {
alert('Tekstfeltet skal udfyldes!');
elem.focus();
error = 1;
}         
else if (re.test(elem.value)) {
error = 1;
elem.focus();
alert('Der er fundet ugyldige tegn i tekstfeltet!\n\nFjern dem
venligst!');
}
return (!error);
}
</script>
<form action="side2.asp" onSubmit="return validering();">
<input type="text" name="userfile" value="Ingen æ'er, ø'er eller
å'er!!!">
<input type="submit">
</form>


Jeg har indsat leddet elem = document.forms[0].userfile; dels for at
gøre det nemmere at tilgå objektet (html-elementet), og dels muliggør at
gennemløbe de enkelte elementer i formularen gennem en løkke.
F.eks.
form = document.forms[0]; // evt. hentet som funktionsparameter
for (j in form) {
elem = form.elements[j];
if (elem.type == "text") {
// valideringen for et tekstfelt - som vist ovenfor
}
}


Grunden til, jeg har skrevet "return (!error);" er, at error - såfremt
der er fejl - indholder værdien 1, som også er den booleske værdi for
true.
Vi vil gerne have, at formularen ikke bliver sendt, hvis der er fejl, og
det kan vi gøre ved at give formularens onSubmit-event en return-værdi
der er "false".
Hvis der ingen fejl er, er error = 0 - ellers er error = 1.
Hvis vi så "vender det om", altså gør sand til falsk, og falsk til sand,
får vi det ønskede resultat.
Og det gøres ved hjælp af vores udråbstegn.

Det skulle vidst være det, tror jeg!
Er der mere, du er i tvivl om, så bare spørg!


MVH Jonas (aka Juke)

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408926
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste