/ 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
Valider tekstbox m javascript
Fra : Jacob ..


Dato : 14-12-03 15:35

Hejsa

Er der nogen der fortælle mig om man kan lave et script ala
nedenstående (som checker om et felt indeholder noget. Scriptet
skal checke om man udfylder det med datoformatet dd-mm-åååå



dette script checker om der er tastet noget i tekstboxen "Dato"
if((document.forms[0].Dato.value=='') && (error==0))
{      
alert('Du skal udfylde feltet DATO');
document.forms[0].Dato.focus();
error = 1;      
}

--
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

 
 
Jens Peter Karlsen (14-12-2003)
Kommentar
Fra : Jens Peter Karlsen


Dato : 14-12-03 19:00

For at undgå fejl ved dato indtastning er det meget bedre at bruge tre
dropdowns med hhv. dag, måned og år. Det udelukker de mest almindelige
fejl. Skal du gemme det i en database samler du det bare på Serveren
med ASP, PHP eller hvad du nu bruger. Alternativt kan Databasen laves
om så datoen gemmes i tre tal felter i stedet for et egentligt
datofelt.
Når det er sagt så kan man godt lave et regulært udtryk (Regular
Expression) som checker at formatet er rigtigt. Det beskytter dog ikke
imod at folk skriver det forkert som mm-dd-åååå hvis dato er 12 eller
derunder.

Regards Jens Peter Karlsen. Microsoft MVP - Frontpage.

On Sun, 14 Dec 2003 14:35:01 +0000 (UTC), Jacob .. <laessoe@yahoo.com>
wrote:

>Er der nogen der fortælle mig om man kan lave et script ala
>nedenstående (som checker om et felt indeholder noget. Scriptet
>skal checke om man udfylder det med datoformatet dd-mm-åååå


Johan Holst Nielsen (14-12-2003)
Kommentar
Fra : Johan Holst Nielsen


Dato : 14-12-03 20:41

Jens Peter Karlsen wrote:
> Det beskytter dog ikke
> imod at folk skriver det forkert som mm-dd-åååå hvis dato er 12 eller
> derunder.

Hmm, det gør dropdowns nu heller ikke...

mvh
johan


Jacob .. (14-12-2003)
Kommentar
Fra : Jacob ..


Dato : 14-12-03 20:47

> Når det er sagt så kan man godt lave et regulært udtryk (Regular
> Expression) som checker at formatet er rigtigt. Det beskytter dog ikke
> imod at folk skriver det forkert som mm-dd-åååå hvis dato er 12 eller
> derunder.

OK - problemet er faktisk ikke at mine brugere (dem er der 6 af), ikke
kan finde ud af at skrive datoen i ddmmåååå, men at de glemmer at
seperere dem med bindestreger og det scrambler min db. Jeg har forsøgt at
lave det i asp, men det virker ikke som jeg gerne vil have det skal gøre.

Så jeg tænkte at det måske er smartest i js - evt. at den bare checker om
teksboksen indholder en (eller flere) bindestreger. Kan du fikse den for
mig mon, er *totalt* grøn i js.

--
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

Lasse Reichstein Nie~ (14-12-2003)
Kommentar
Fra : Lasse Reichstein Nie~


Dato : 14-12-03 21:25

Jacob .. <laessoe@yahoo.com> writes:

> OK - problemet er faktisk ikke at mine brugere (dem er der 6 af), ikke
> kan finde ud af at skrive datoen i ddmmåååå, men at de glemmer at
> seperere dem med bindestreger og det scrambler min db. Jeg har forsøgt at
> lave det i asp, men det virker ikke som jeg gerne vil have det skal gøre.

Det ville ellers være det bedste - fiks det på serveren.

> Så jeg tænkte at det måske er smartest i js - evt. at den bare checker om
> teksboksen indholder en (eller flere) bindestreger. Kan du fikse den for
> mig mon, er *totalt* grøn i js.

Prøv den her:

<script type="text/javascript">
function fixDate(inputElement) {
var value = inputElement.value;
// fjern mellemrum
value = value.replace(/\s+/g,"");
// hvis feltet er tomt, så lad være med at brokke os endnu!
if (value == "") {return;}
// test om ikke rigtigt format
if (!/^\d\d-\d\d-\d{4}$/.test(value)) {
// ej rigtigt! er det fordi streger mangler?
if (/^\d{8}$/.test(value)) {
// ja, det er otte cifre. Indsæt streger!
value = value.substr(0,2)+"-"+value.substr(2,2)+"-"+value.substr(4);
} else {
// ok, ved ikke hvad der er galt!
alert("Input er ikke en dato på formen dd-mm-åååå");
inputElement.focus();
return;
}
}
inputElement.value = value;
// test evt om datoen er lovlig:
if (!legalDate(value)) {
alert("Datoen findes ikke! Fy!");
inputElement.focus();
return;
}
}

function legalDate(str) { // str er på formen dd-mm-åååå
var parts = str.split("-");
var date = Number(parts[0]);
var mth = Number(parts[1])-1;
var year = Number(parts[2]);
var realDate = new Date(year,mth,date);
return !(realDate.getDate() != date || realDate.getMonth() != mth);
}

</script>

og

<input type="text" name="dato" onchange="fixDate(this)" value="dd-mm-åååå">


/L
--
Lasse Reichstein Nielsen - lrn@hotpop.com
DHTML Death Colors: <URL:http://www.infimum.dk/HTML/rasterTriangleDOM.html>
'Faith without judgement merely degrades the spirit divine.'

Johan Holst Nielsen (14-12-2003)
Kommentar
Fra : Johan Holst Nielsen


Dato : 14-12-03 21:11

Jacob .. wrote:

> Hejsa
>
> Er der nogen der fortælle mig om man kan lave et script ala
> nedenstående (som checker om et felt indeholder noget. Scriptet
> skal checke om man udfylder det med datoformatet dd-mm-åååå

Noget ala:
<html>
<head>
<script type="text/javascript">
function validateDate() {
var dates = document.form1.dato.value.split("-");
if(dates.length != 3) {
   return alert("Forkert datoformat");
}
if(parseInt(dates[0]) < 1 || parseInt(dates[0]) > 31 || dates[0].length
!= 2) {
   return alert("Forkert datoformat");
}
if(parseInt(dates[1]) < 1 || parseInt(dates[1]) > 12 || dates[1].length
!= 2) {
   return alert("Forkert datoformat");
}
if(parseInt(dates[2]) < 1900 || parseInt(dates[2]) > 2010 ||
dates[2].length != 4) {
   return alert("Forkert datoformat");
}
alert("Rigtig datoformat");
}
</script>
</head>
<body>
<form action="#" name="form1">
Indtast dato: <input type="text" name="dato" value="DD-MM-ÅÅÅÅ"> <input
type="button" value="Valider dato" onclick="validateDate();">
</form>
</body>
</html>



Tjekker om DD er mellem 01 og 31
Tjekker om MM er mellem 01 og 12
Tjekker om ÅÅÅÅ er mellem 1900 og 2010

mvh
Johan


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