|
| Tjek dato Fra : Ukendt |
Dato : 10-01-09 09:40 |
|
Hej NG
Jeg har ikke meget begreb om javascript...
Kan i hjælpe med et script, som tjekker om et formfelt(Dato) er lørdag eller
søndag...???
Hilsen
Bjarne
"Every day new surprises"
| |
Ukendt (10-01-2009)
| Kommentar Fra : Ukendt |
Dato : 10-01-09 14:21 |
|
"bsn" <bsnSNABELAoncableDOTdk> skrev
>
> Hej NG
>
> Jeg har ikke meget begreb om javascript...
> Kan i hjælpe med et script, som tjekker om et formfelt(Dato) er lørdag
> eller søndag...???
Har løst det serverside...
Men vil gerne høre om et client forslag...
Bjarne
| |
Jens Peter Karlsen (11-01-2009)
| Kommentar Fra : Jens Peter Karlsen |
Dato : 11-01-09 03:04 |
|
Brug todatestring().
http://www.w3schools.com/jsref/jsref_toDateString.asp
Udtræk de første 3 bogstaver. Sammenlign med en liste af navne på
dagene og udskriv det der passer.
Regards Jens Peter Karlsen.
On Sat, 10 Jan 2009 14:21:20 +0100, "bsn" <bsnSNABELAoncableDOTdk>
wrote:
>Har løst det serverside...
>Men vil gerne høre om et client forslag...
>Bjarne
>
| |
Ukendt (11-01-2009)
| Kommentar Fra : Ukendt |
Dato : 11-01-09 11:26 |
|
"Jens Peter Karlsen" <jpkarlsen@mvps.org> skrev
> Brug todatestring().
> http://www.w3schools.com/jsref/jsref_toDateString.asp
> Udtræk de første 3 bogstaver. Sammenlign med en liste af navne på
> dagene og udskriv det der passer.
Jeg er nok lidt tung i det...
Kan du vise lidt kode på :
1-Få fat i dato fra formfelt(Dato)
2-Tjek om Dato er lørdag eller søndag
og så skal hele funktionen eller koden køres "OnSubmit"...
Hilsen
Bjarne
| |
Jens Peter Karlsen (11-01-2009)
| Kommentar Fra : Jens Peter Karlsen |
Dato : 11-01-09 21:26 |
|
Jeg skulle først vide hvordan datoen skrives.
Regards Jens Peter Karlsen
On Sun, 11 Jan 2009 11:25:38 +0100, "bsn" <bsnSNABELAoncableDOTdk>
wrote:
>Jeg er nok lidt tung i det...
>Kan du vise lidt kode på :
>
>1-Få fat i dato fra formfelt(Dato)
| |
Ukendt (11-01-2009)
| Kommentar Fra : Ukendt |
Dato : 11-01-09 23:56 |
|
"Jens Peter Karlsen" <jpkarlsen@mvps.org> skrev
> Jeg skulle først vide hvordan datoen skrives.
11-01-2009
Bjarne
| |
Jens Peter Karlsen (13-01-2009)
| Kommentar Fra : Jens Peter Karlsen |
Dato : 13-01-09 14:57 |
|
Beklager det tog lidt tid at svare, jeg havde ikke lige tiden.
Det ser ud til at du bare har et input felt og håber at folk skriver
som du ønsker. Dette er ingen god ide, Der er mange måder at skrive en
dato på og forskellige lande har forskellige standarder for hvordan
det skrives. Datoen 11-01-2009 ville herhjemme blive læst som den
elfte januar 2009 men i USA (og andre lande) ville den blive læst som
den første November 2009. Hvis datoen skal lagres i en database er det
uhøre vigtigt at den er i det format som databasen forventer.
Det enkleste er at have dropdowns for dag, måned og år og selv
sammensætte det serverside inden det lagres i databasen. Det vil skære
meget ned på fejl.
Anyway du spurgte efter lidt kode til at checke for hvilken ugedag det
er.
Jeg forudsætter at dato feltet har fået id="dato"
Hent værdien:
var minDato = document.getelementbyid(dato).value;
Dette oversættes til et date object:
var maaned = minDato.substring(3,5);
var dag = minDato.substring(0,2);
var aar = mindato.substring(6,10);
var minNyeDato = maaned + "-" + dag + "-" + aar;
var myDateObject = new date(minNyeDato);
Nu hvor vi har strengen som et Date object oversætter vi til en
datestring.
var myDateString = myDateObject.todatestring();
Vi skal nu have den del der udgør ugedagen, hvilket er de første 3
bogstaver
var mindag = myDateString.substring(0,3);
resultatet sammenlignes så.
if(minDag == "sat")
alert("Det er i dag lørdag")
og så videre.
Regards Jens Peter Karlsen
On Sun, 11 Jan 2009 23:55:39 +0100, "bsn" <bsnSNABELAoncableDOTdk>
wrote:
>> Jeg skulle først vide hvordan datoen skrives.
>
>11-01-2009
| |
Ukendt (14-01-2009)
| Kommentar Fra : Ukendt |
Dato : 14-01-09 08:34 |
|
"Jens Peter Karlsen" <jpkarlsen@mvps.org> skrev
> Beklager det tog lidt tid at svare, jeg havde ikke lige tiden.
Bedre sent end aldrig...8-d
> Det ser ud til at du bare har et input felt og håber at folk skriver
> som du ønsker. Dette er ingen god ide, Der er mange måder at skrive en
> dato på og forskellige lande har forskellige standarder for hvordan
> det skrives. Datoen 11-01-2009 ville herhjemme blive læst som den
> elfte januar 2009 men i USA (og andre lande) ville den blive læst som
> den første November 2009. Hvis datoen skal lagres i en database er det
> uhøre vigtigt at den er i det format som databasen forventer.
> Det enkleste er at have dropdowns for dag, måned og år og selv
> sammensætte det serverside inden det lagres i databasen. Det vil skære
> meget ned på fejl.
Ok...
> Anyway du spurgte efter lidt kode til at checke for hvilken ugedag det
> er.
>
> Jeg forudsætter at dato feltet har fået id="dato"
>
> Hent værdien:
>
> var minDato = document.getelementbyid(dato).value;
>
> Dette oversættes til et date object:
>
> var maaned = minDato.substring(3,5);
> var dag = minDato.substring(0,2);
> var aar = mindato.substring(6,10);
> var minNyeDato = maaned + "-" + dag + "-" + aar;
> var myDateObject = new date(minNyeDato);
>
> Nu hvor vi har strengen som et Date object oversætter vi til en
> datestring.
>
> var myDateString = myDateObject.todatestring();
>
> Vi skal nu have den del der udgør ugedagen, hvilket er de første 3
> bogstaver
>
> var mindag = myDateString.substring(0,3);
>
> resultatet sammenlignes så.
>
> if(minDag == "sat")
> alert("Det er i dag lørdag")
>
> og så videre.
Har lagt denne kode i en funktion, og lagt funktionen i "OnChange" eventen
på formfeltet...
<script>
function ugedag(){
var minDato = document.getelementbyid(txtSidstPudset).value;
var maaned = minDato.substring(3,5);
var dag = minDato.substring(0,2);
var aar = mindato.substring(6,10);
var minNyeDato = maaned + "-" + dag + "-" + aar;
var myDateObject = new date(minNyeDato);
var myDateString = myDateObject.todatestring();
var mindag = myDateString.substring(0,3);
if(minDag == "sat")
alert("Det er i dag lørdag")
}
</script>
Kommer med denne fejl:
"txtSidstPudset er ikke defineret"
Bjarne
| |
Jens Peter Karlsen (14-01-2009)
| Kommentar Fra : Jens Peter Karlsen |
Dato : 14-01-09 15:44 |
|
Post et link så skal jeg se på det.
Regards Jens Peter Karlsen.
On Wed, 14 Jan 2009 08:34:00 +0100, "bsn" <bsnSNABELAoncableDOTdk>
wrote:
>Kommer med denne fejl:
>"txtSidstPudset er ikke defineret"
| |
Ukendt (15-01-2009)
| Kommentar Fra : Ukendt |
Dato : 15-01-09 01:37 |
| | |
Jens Peter Karlsen (15-01-2009)
| Kommentar Fra : Jens Peter Karlsen |
Dato : 15-01-09 05:08 |
|
Du har ikke givet feltet et id som jeg skrev.
Regards Jens Peter Karlsen
On Thu, 15 Jan 2009 01:37:01 +0100, "bsn" <bsnSNABELAoncableDOTdk>
wrote:
>
>"Jens Peter Karlsen" <jpkarlsen@mvps.org> skrev
>> Post et link så skal jeg se på det.
>
> http://hoejbynet.dk/test.htm
>
>Bjarne
>
| |
Ukendt (15-01-2009)
| Kommentar Fra : Ukendt |
Dato : 15-01-09 23:57 |
|
"Jens Peter Karlsen" <jpkarlsen@mvps.org> skrev i en meddelelse
news:uictm4toelm7g0r04stjco309vg0tv9h1b@4ax.com...
> Du har ikke givet feltet et id som jeg skrev.
Sorry - det havde jeg overset...
Men som sagt - kender MEGET lidt til javascript...
Tak for svaret - bruger Stigs eksempel...
Bjarne
| |
Stig Johansen (15-01-2009)
| Kommentar Fra : Stig Johansen |
Dato : 15-01-09 06:01 |
|
"bsn" <bsnSNABELAoncableDOTdk> wrote:
> "Jens Peter Karlsen" <jpkarlsen@mvps.org> skrev
>> Post et link så skal jeg se på det.
>
> http://hoejbynet.dk/test.htm
Der er en del fejl, og lidt uhensigtsmæssigheder.
Jeg har flyttet lidt rundt på nogle ting og lagt en udgave her, som også
indeholder lidt alerts osv.
< http://w-o-p-r.dk/test/bsn.html>
Jeg har ikke noteret hver enkelt rettelse, men i store træk:
* HTML'et:
Dit felt skal have en id (ud over name), så id="txtSidstPudset" er
tilføjet.
Jeg har rettet det til onblur i stedet for onchange, så bliver testen først
udført når curseren forlader feltet.
* Javascriptet.
Jeg har flyttet det op i <head> delen sammen med det andet.
Når du laver en document.getElementById('txtSidstPudset') skal
txtSidstPudset i '-er (eller "-er)
Javascript er case sensitivt, så der er en del rettelser med store og små
bogstaver. Her bliver du nødt til at sammenligne 'dit' og 'mit'.
I stedet for at test på dagen som tekst, kunne du teste på dag i ugen - et
eksempel er lagt ind.
Jeg håber du kan komme lidt videre med dit projekt.
--
Med venlig hilsen
Stig Johansen
| |
Ukendt (16-01-2009)
| Kommentar Fra : Ukendt |
Dato : 16-01-09 00:00 |
|
"Stig Johansen" <wopr.dk@gmaill.com> skrev
>>
>> http://hoejbynet.dk/test.htm
>
> Der er en del fejl, og lidt uhensigtsmæssigheder.
> Jeg har flyttet lidt rundt på nogle ting og lagt en udgave her, som også
> indeholder lidt alerts osv.
>
> < http://w-o-p-r.dk/test/bsn.html>
> Jeg har ikke noteret hver enkelt rettelse, men i store træk:
> * HTML'et:
> Dit felt skal have en id (ud over name), så id="txtSidstPudset" er
> tilføjet.
> Jeg har rettet det til onblur i stedet for onchange, så bliver testen
> først
> udført når curseren forlader feltet.
Ok...
> * Javascriptet.
> Jeg har flyttet det op i <head> delen sammen med det andet.
> Når du laver en document.getElementById('txtSidstPudset') skal
> txtSidstPudset i '-er (eller "-er)
> Javascript er case sensitivt, så der er en del rettelser med store og små
> bogstaver. Her bliver du nødt til at sammenligne 'dit' og 'mit'.
Ok...
> I stedet for at test på dagen som tekst, kunne du teste på dag i ugen - et
> eksempel er lagt ind.
Ok...
> Jeg håber du kan komme lidt videre med dit projekt.
Det er jeg sikker på jeg kan...
Jeg kigger på det snarest...
Det ser overskueligt ud...
Mange tak for svar...
Bjarne
| |
Stig Johansen (16-01-2009)
| Kommentar Fra : Stig Johansen |
Dato : 16-01-09 06:20 |
|
"bsn" <bsnSNABELAoncableDOTdk> wrote:
> Mange tak for svar...
Velbekomme, du får lige et par ekstra ord med på vejen.
Jeg vil foreslå dig altid at bruge lowercase til både id'er og egne variable
i Javascript
f.eks MinNyeDato er ikke det samme som MinNyedato, og vil formentlig genere
en fejl.
Javascript 'funktioner' SKAL skrives med korrekt case (typisk lower camel
case)
f.eks document.getelementbyid findes ikke som 'funktion'.
Jeg vil også foreslå dig at bruge Firefox når(hvis) du roder med Javascript.
I min Firefox får jeg et lille rødt udråbstegn hvis der er fejl i
Javascriptet.
Ved at klikke på det, får jeg en error console med både fejlmelding samt
linienummer hvor fejlen opstod.
Du skal også være opmærksom på at jeg i eksemplet 'bare klistrede ovenpå
dit', så når du finder din færdige løsning, er der nok noget der kan
fjernes.
--
Med venlig hilsen
Stig Johansen
| |
Ukendt (17-01-2009)
| Kommentar Fra : Ukendt |
Dato : 17-01-09 03:43 |
|
"Stig Johansen" <wopr.dk@gmaill.com> skrev
> "bsn" <bsnSNABELAoncableDOTdk> wrote:
>
>> Mange tak for svar...
>
> Velbekomme, du får lige et par ekstra ord med på vejen.
>
> Jeg vil foreslå dig altid at bruge lowercase til både id'er og egne
> variable
> i Javascript
> f.eks MinNyeDato er ikke det samme som MinNyedato, og vil formentlig
> genere
> en fejl.
>
> Javascript 'funktioner' SKAL skrives med korrekt case (typisk lower camel
> case)
> f.eks document.getelementbyid findes ikke som 'funktion'.
>
> Jeg vil også foreslå dig at bruge Firefox når(hvis) du roder med
> Javascript.
> I min Firefox får jeg et lille rødt udråbstegn hvis der er fejl i
> Javascriptet.
>
> Ved at klikke på det, får jeg en error console med både fejlmelding samt
> linienummer hvor fejlen opstod.
>
> Du skal også være opmærksom på at jeg i eksemplet 'bare klistrede ovenpå
> dit', så når du finder din færdige løsning, er der nok noget der kan
> fjernes.
OK...
Et tillægsspg.
Jeg bruger også scriptet på et felt i en post på en asp side.
Bruger denne kode til at få datoen:
var minDato = <%="'" & Date() & "'"%>;
Den virker også når jeg klikker på et link på aspsiden, men jeg mangler
"OK - Cancel" knapper i alert boxen.
Der er en OK knap, og hvis jeg klikker på denne, sker der intet - asp siden
bliver ikke udført...
Vil gerne have, at hvis jeg klikker OK, så udføres asp siden.
Hvis jeg klikker Cancel, skal asp siden ikke udføres...
Bjarne
| |
Stig Johansen (17-01-2009)
| Kommentar Fra : Stig Johansen |
Dato : 17-01-09 06:05 |
|
"bsn" <bsnSNABELAoncableDOTdk> wrote:
> Den virker også når jeg klikker på et link på aspsiden, men jeg mangler
> "OK - Cancel" knapper i alert boxen.
Det er ikke meget (kode) du giver at arbejde med ;)
Hvis du skal have en Ok/Cancel skal du bruge confirm i stedet for alert.
prøv f.eks
var confirmed=confirm('Et eller andet - fortsæt?');
....
if ( confirmed ) {
.. bruger har trykket ok
} else {
.. bruger har trykket cancel
}
--
Med venlig hilsen
Stig Johansen
| |
Ukendt (18-01-2009)
| Kommentar Fra : Ukendt |
Dato : 18-01-09 01:53 |
|
"Stig Johansen" <wopr.dk@gmaill.com> skrev
> "bsn" <bsnSNABELAoncableDOTdk> wrote:
>
>> Den virker også når jeg klikker på et link på aspsiden, men jeg mangler
>> "OK - Cancel" knapper i alert boxen.
>
> Det er ikke meget (kode) du giver at arbejde med ;)
> Hvis du skal have en Ok/Cancel skal du bruge confirm i stedet for alert.
>
> prøv f.eks
> var confirmed=confirm('Et eller andet - fortsæt?');
> ...
> if ( confirmed ) {
> .. bruger har trykket ok
> } else {
> .. bruger har trykket cancel
> }
Tak - det virker fint, men...
Jeg er vist rendt ind i et problem...
Jeg skal have en "response.redirect" placeret i ".. bruger har trykket
ok"...
Altså asp blandet ind i javascriptet...
Har googlet en del, syntes ikke jeg kan finde det svar jeg vil have...
Kan det lade sig gøre...???
Bjarne
| |
Stig Johansen (18-01-2009)
| Kommentar Fra : Stig Johansen |
Dato : 18-01-09 06:57 |
|
"bsn" <bsnSNABELAoncableDOTdk> wrote:
>
> "Stig Johansen" <wopr.dk@gmaill.com> skrev
>> "bsn" <bsnSNABELAoncableDOTdk> wrote:
>>
>>> Den virker også når jeg klikker på et link på aspsiden, men jeg mangler
>>> "OK - Cancel" knapper i alert boxen.
>>
>> Det er ikke meget (kode) du giver at arbejde med ;)
>> Hvis du skal have en Ok/Cancel skal du bruge confirm i stedet for alert.
>>
>> prøv f.eks
>> var confirmed=confirm('Et eller andet - fortsæt?');
>> ...
>> if ( confirmed ) {
>> .. bruger har trykket ok
>> } else {
>> .. bruger har trykket cancel
>> }
>
> Tak - det virker fint, men...
> Jeg er vist rendt ind i et problem...
> Jeg skal have en "response.redirect" placeret i ".. bruger har trykket
> ok"...
> Altså asp blandet ind i javascriptet...
> Har googlet en del, syntes ikke jeg kan finde det svar jeg vil have...
> Kan det lade sig gøre...???
Ja, men jeg kan simpelthen ikke udlede hvad du vil ud fra det du skriver.
Er det en <form>, der skal godkendes?
Er det en redirect som du skriver ? - så kan man bruge location.href til
det.
Er det en <a href=...> ?
Eller ?
Jeg vil godt prøve at hjælpe, men jeg vil ikke bruge tid på at gætte ud i
den blå luft.
--
Med venlig hilsen
qStig Johansen
| |
Ukendt (18-01-2009)
| Kommentar Fra : Ukendt |
Dato : 18-01-09 20:09 |
|
"Stig Johansen" <wopr.dk@gmaill.com> skrev>>>
>>>> Den virker også når jeg klikker på et link på aspsiden, men jeg mangler
>>>> "OK - Cancel" knapper i alert boxen.
>>>
>>> Det er ikke meget (kode) du giver at arbejde med ;)
>>> Hvis du skal have en Ok/Cancel skal du bruge confirm i stedet for alert.
>>>
>>> prøv f.eks
>>> var confirmed=confirm('Et eller andet - fortsæt?');
>>> ...
>>> if ( confirmed ) {
>>> .. bruger har trykket ok
>>> } else {
>>> .. bruger har trykket cancel
>>> }
>>
>> Tak - det virker fint, men...
>> Jeg er vist rendt ind i et problem...
>> Jeg skal have en "response.redirect" placeret i ".. bruger har trykket
>> ok"...
>> Altså asp blandet ind i javascriptet...
>> Har googlet en del, syntes ikke jeg kan finde det svar jeg vil have...
>> Kan det lade sig gøre...???
>
> Ja, men jeg kan simpelthen ikke udlede hvad du vil ud fra det du skriver.
Jeg skal prøve at tydeliggøre det...
> Er det en <form>, der skal godkendes?
> Er det en redirect som du skriver ? - så kan man bruge location.href til
> det.
> Er det en <a href=...> ?
> Eller ?
>
> Jeg vil godt prøve at hjælpe, men jeg vil ikke bruge tid på at gætte ud i
> den blå luft.
Nej, det kan jeg udmærket forstå...
Men til sagen :
Det er bl.a. en oversigt med kundeid, dato og pris, som vises
Det er et databaseudtræk i en tabel med 10 kolonner og x antal rækker...
I en af kolonnerne er der en knap(pr. række(post)), der klikkes på, for at
opdatere et kundeid, et beløb, og en dato...
Eksempel : Række 12 skal opdateres - jeg skal så have værdierne i ovennævnte
felter, som så skal sendes med en
Response.Redirect "opdateringssiden.asp".
Håber det kastede lidt mere lys over sagen...
Jeg ser ikke dit svar, før om 14 dage - har sommerferien tilgode, som jeg
tilbringer i Thailand...
Bjarne
| |
Stig Johansen (19-01-2009)
| Kommentar Fra : Stig Johansen |
Dato : 19-01-09 02:48 |
|
"bsn" <bsnSNABELAoncableDOTdk> wrote:
> Nej, det kan jeg udmærket forstå...
> Men til sagen :
> Det er bl.a. en oversigt med kundeid, dato og pris, som vises
> Det er et databaseudtræk i en tabel med 10 kolonner og x antal rækker...
> I en af kolonnerne er der en knap(pr. række(post)), der klikkes på, for at
> opdatere et kundeid, et beløb, og en dato...
> Eksempel : Række 12 skal opdateres - jeg skal så have værdierne i
> ovennævnte felter, som så skal sendes med en
> Response.Redirect "opdateringssiden.asp".
>
> Håber det kastede lidt mere lys over sagen...
Den slags ting har jeg lavet en del af vha AJAX, det kunne måske være en
ide ?
På den måde bliver man på siden og opdaterer 'interaktivt'.
> Jeg ser ikke dit svar, før om 14 dage - har sommerferien tilgode, som jeg
> tilbringer i Thailand...
God ferie, og jeg vil foreslå dig at oprette en ny tråd når du kommer hjem.
Helst med et lille eksempel på hvordan tabellen ser ud.
--
Med venlig hilsen
Stig Johansen
| |
Ukendt (06-02-2009)
| Kommentar Fra : Ukendt |
Dato : 06-02-09 08:51 |
|
"Stig Johansen" <wopr.dk@gmaill.com> skrev
>
>> Nej, det kan jeg udmærket forstå...
>> Men til sagen :
>> Det er bl.a. en oversigt med kundeid, dato og pris, som vises
>> Det er et databaseudtræk i en tabel med 10 kolonner og x antal rækker...
>> I en af kolonnerne er der en knap(pr. række(post)), der klikkes på, for
>> at
>> opdatere et kundeid, et beløb, og en dato...
>> Eksempel : Række 12 skal opdateres - jeg skal så have værdierne i
>> ovennævnte felter, som så skal sendes med en
>> Response.Redirect "opdateringssiden.asp".
>>
>> Håber det kastede lidt mere lys over sagen...
>
> Den slags ting har jeg lavet en del af vha AJAX, det kunne måske være en
> ide ?
> På den måde bliver man på siden og opdaterer 'interaktivt'.
AJAX lyder tillokkende, men jeg tror bare jeg giver en besked serverside,
og så kan man jo rette dato, hvis man har lyst...
>> Jeg ser ikke dit svar, før om 14 dage - har sommerferien tilgode, som jeg
>> tilbringer i Thailand...
>
> God ferie, og jeg vil foreslå dig at oprette en ny tråd når du kommer
> hjem.
> Helst med et lille eksempel på hvordan tabellen ser ud.
Tak for det - den var virkelig afslappende...
Har ikke set en telefon eller pc i 14 dage - dejligt...
Tak for svar...
Bjarne
| |
Peter (17-01-2009)
| Kommentar Fra : Peter |
Dato : 17-01-09 15:26 |
|
Hej Stig og andre!
Jeg er desværre "kørt fast" i dette problem. Da jeg er "newbee" har jeg ikke
pondus til at få problemet afsluttet.
Mit problem er at checke om den samlede dato man via 4
rullemenuer selv har sammensat, er korrekt (Ugedag, Dato, Måned, År)
Bl.a. så man ikke vælger højere end d. 28. februar med mindre det er skudår.
Således at man bliver gjort opmærksom at dagens navn ikke passer på datoen,
osv.
Jeg har i forvejen "noget" validering tilknyttet til rullemenuerne. Kan de
måske "konflikte" med hinanden ?
Jeg har brugt dette script:
<script type="text/javascript">
<form action="Hvilken_dag"
onsubmit="function selectValue(select) {
return select.options[select.selectedIndex].value;
}
var elems = this.elements;
if(!checkDate(+selectValue(elems['Dag']),
+selectValue(elems['Dato']),
+selectValue(elems['Måned']),
+selectValue(elems['År'])) {
alert('Din dato er ikke gyldig');
return false;
}">
</script>
Linket til siden:
www.morgenmusikken.dk/formular.htm
På forhånd. Tak!
hilsen
Peter
| |
Stig Johansen (17-01-2009)
| Kommentar Fra : Stig Johansen |
Dato : 17-01-09 19:49 |
|
"Peter" <petit@mobil.dk> wrote in message
news:4971ea8e$0$56782$edfadb0f@dtext02.news.tele.dk...
> Hej Stig og andre!
>
> Jeg er desværre "kørt fast" i dette problem. Da jeg er "newbee" har jeg
ikke
> pondus til at få problemet afsluttet.
[snip]
> Linket til siden:
> www.morgenmusikken.dk/formular.htm
Hvis du sætter det her stykke Javascript umiddelbart før din sidste
return (true);
tror jeg det er nogenlunde på plads.
(variabelnavnene er lidt tilfældige, så det må du selv pynte på).
var dayofweek = theForm.Dag.selectedIndex % 7 ;
var month = theForm.Mdr.selectedIndex
var year = theForm.Året.value
var dayofmonth = theForm.Dato.selectedIndex
var mydate = new Date();
mydate.setFullYear(year,month-1,dayofmonth);
var ugedag=mydate.getDay();
if ( mydate.getFullYear() != +year || mydate.getMonth()+1 != month ||
mydate.getDate() != dayofmonth ) {
alert ('Ugyldig dag/måned ' + mydate.toDateString() );
return false ;
}
if ( dayofweek != ugedag ) {
alert ('ugedag passer ikke med datoen');
return false ;
}
Og hold øje med evt. linieskift i nyhedslæserne.
--
Med venlig hilsen/Best regards
Stig Johansen
| |
Peter (17-01-2009)
| Kommentar Fra : Peter |
Dato : 17-01-09 20:54 |
|
Hej Stig! Tak for din hjælp. Jeg har sat scriptet ind, men der "sker" ikke
noget Fejlen er nok noget jeg ikke har forstået "det hele" og mangler
helt sikkert at rette "noget til". Beklager!
f.eks.: Citat: " før din sidste return (true)" - Hvor er det ??? (Nogle
"fagudtryk" jeg ikke er fortrolig med, Desværre)
Citat: Variabelnavnene er lidt tilfældige, så det må du selv pynte på. - Det
ville jeg "meget" gerne, men hvordan kender jeg et variabelnavn ???
Citat: Og hold øje med evt. linieskift i nyhedslæserne. - Er nyhedslæserne =
Browserne
Det er virkelig "sort" snak for "lille" mig. Endnu engang. Jeg er total "på
dyb vand" m.h.t. Java Script. Beklager. Håber på mere hjælp. Vil du kigge på
linket engang til. Nu er scriptet placeret. Måske ikke det rigtige sted
www.morgenmusikken.dk/formular.htm
hilsen
Peter
> Hvis du sætter det her stykke Javascript umiddelbart før din sidste
> return (true);
> tror jeg det er nogenlunde på plads.
> (variabelnavnene er lidt tilfældige, så det må du selv pynte på).
>
> var dayofweek = theForm.Dag.selectedIndex % 7 ;
> var month = theForm.Mdr.selectedIndex
> var year = theForm.Året.value
> var dayofmonth = theForm.Dato.selectedIndex
> var mydate = new Date();
> mydate.setFullYear(year,month-1,dayofmonth);
> var ugedag=mydate.getDay();
>
> if ( mydate.getFullYear() != +year || mydate.getMonth()+1 != month ||
> mydate.getDate() != dayofmonth ) {
> alert ('Ugyldig dag/måned ' + mydate.toDateString() );
> return false ;
> }
>
> if ( dayofweek != ugedag ) {
> alert ('ugedag passer ikke med datoen');
> return false ;
> }
>
> Og hold øje med evt. linieskift i nyhedslæserne.
>
> --
> Med venlig hilsen/Best regards
> Stig Johansen
| |
Stig Johansen (17-01-2009)
| Kommentar Fra : Stig Johansen |
Dato : 17-01-09 21:18 |
|
Peter wrote:
> Hej Stig! Tak for din hjælp. Jeg har sat scriptet ind, men der "sker" ikke
> noget Fejlen er nok noget jeg ikke har forstået "det hele" og mangler
> helt sikkert at rette "noget til". Beklager!
Der er ikke noget at beklage.
> f.eks.: Citat: " før din sidste return (true)" - Hvor er det ??? (Nogle
> "fagudtryk" jeg ikke er fortrolig med, Desværre)
Det var oppe i toppen hvor du har dit <script> i forvejen.
> Citat: Variabelnavnene er lidt tilfældige, så det må du selv pynte på. -
> Det ville jeg "meget" gerne, men hvordan kender jeg et variabelnavn ???
Det er kun for din egen skyld, jeg kom til at kalde det ugedag og dayofweek,
lidt pærevælling mellem dansk og engelsk.
> Citat: Og hold øje med evt. linieskift i nyhedslæserne. - Er nyhedslæserne
> = Browserne
Min er KNode, og din er Outlook express, kan jeg se.
De har det med at bryde linierne, så eksempelvis:
....
if ( mydate.getFullYear() != +year || mydate.getMonth()+1 != month ||
mydate.getDate() != dayofmonth ) {
....
skal være på een linie, men vises som 2.
> Det er virkelig "sort" snak for "lille" mig. Endnu engang. Jeg er total
> "på dyb vand" m.h.t. Java Script. Beklager. Håber på mere hjælp. Vil du
> kigge på linket engang til. Nu er scriptet placeret. Måske ikke det
> rigtige sted www.morgenmusikken.dk/formular.htm
Jeg havde lavet et reduceret eksempel ud fra din side.
Den kan du se her:
< http://w-o-p-r.dk/test/peter.html>
Hvis du bruger vis kilde, og copy/paster javascriptet over i dit eget, burde
der ikke være problemer med linieskift.
Ved hurtigt kig i dit HTML, er der lidt for mange <body> og <html> tags, det
bør du nok kigge på.
--
Med venlig hilsen
Stig Johansen
| |
Peter (17-01-2009)
| Kommentar Fra : Peter |
Dato : 17-01-09 22:00 |
|
Hej Stig!
Endnu engang tak for din tålmodighed.
> Jeg havde lavet et reduceret eksempel ud fra din side.
> Den kan du se her:
> < http://w-o-p-r.dk/test/peter.html>
Jeg har prøvet at "teste" dit eksempel. Jeg får fejlmeddelelsen: "Ugedag
passer ikke med datoen" når rullemenuen bliver indstillet på: Torsdag d. 1.
januar 2009, selvom den gerne skulle give en accept på denne dato. Scriptet
vælger at godkende: "Lørdag" som "passende" til: 1. januar 2009 Det er
ikke så "heldigt"
hilsen
Peter
| |
Peter (17-01-2009)
| Kommentar Fra : Peter |
Dato : 17-01-09 22:19 |
|
Hej igen Stig!
> Jeg havde lavet et reduceret eksempel ud fra din side.
> Den kan du se her:
> < http://w-o-p-r.dk/test/peter.html>
Kan scriptet "forhindre" godkendelse af en forkert dato? Jeg tænker her på
at April, Juni, September, November kun har 30 dage og især at Februar har
28 dage i 2009, 2010, 2011 og først 29 dage i 2012
hilsen
Peter
| |
Stig Johansen (18-01-2009)
| Kommentar Fra : Stig Johansen |
Dato : 18-01-09 06:10 |
|
Peter wrote:
>
> Hej igen Stig!
>
>> Jeg havde lavet et reduceret eksempel ud fra din side.
>> Den kan du se her:
>> < http://w-o-p-r.dk/test/peter.html>
>
> Kan scriptet "forhindre" godkendelse af en forkert dato? Jeg tænker her på
> at April, Juni, September, November kun har 30 dage og især at Februar har
> 28 dage i 2009, 2010, 2011 og først 29 dage i 2012
Ja, og det gør det.
Jeg har dog begået den fejl, at 'klaske det sammen' i Firefox, hvor det hele
virker, men ikke testet med IE(6), hvor det ikke virker - beklager.
Jeg prøver at kigge på det, og vender tilbage.
--
Med venlig hilsen
Stig Johansen
| |
Stig Johansen (18-01-2009)
| Kommentar Fra : Stig Johansen |
Dato : 18-01-09 06:47 |
|
Stig Johansen wrote:
> Peter wrote:
>>> Jeg havde lavet et reduceret eksempel ud fra din side.
>>> Den kan du se her:
>>> < http://w-o-p-r.dk/test/peter.html>
>>
>> Kan scriptet "forhindre" godkendelse af en forkert dato? Jeg tænker her
>> på at April, Juni, September, November kun har 30 dage og især at Februar
>> har 28 dage i 2009, 2010, 2011 og først 29 dage i 2012
>
> Ja, og det gør det.
>
> Jeg har dog begået den fejl, at 'klaske det sammen' i Firefox, hvor det
> hele virker, men ikke testet med IE(6), hvor det ikke virker - beklager.
>
> Jeg prøver at kigge på det, og vender tilbage.
Nu har jeg ryddet lidt op i eksemplet
< http://w-o-p-r.dk/test/peter.html>
Jeg har overordnet lavet disse ændringer:
På hver af dine options har jeg indlagt en passende id.
Disse id'er bruger jeg til at finde objekterne via Javascript med metoden
getElementById.
Kig efter de første 'var' - linier i scriptet.
Generelt har jeg reduceret testen af seleqction til < 1 i stedet for <0 og
==0
-1 betyder ej selected, og 0 er dine streger, begge er udtryk for manglende
valgt.
Det er naturligvis en smagssag om man vil differentiere på meldingerne, men
i mine øjne er der ingen grund til det.
Jeg brugte .value til årstallet, men den bliver tilsyneladende ikke sat i IE
på select tidspunktet.
Jeg har derfor ændret det til selectedIndex + 2008 i stedet.
Det betyder at du skal huske at rette i scriptet til næste år hvis det skal
starte med 2010, så det bliver +2009 i stedet.
Disse ændringer betyder også, at scriptet virker i min 5+ år gamle
Konqueror, hvilket det ikke gjorde før.
Jeg har lagt en stribe alerts ind, dog udkommenteret med //, hvis du vil
følge med i hvad der sker.
Hov forresten, læg også mærke til jeg har flyttet <script>..</script> op i
<head> sektionen, hvor det hører hjemme.
--
Med venlig hilsen
Stig Johansen
| |
Peter (18-01-2009)
| Kommentar Fra : Peter |
Dato : 18-01-09 13:11 |
|
Hej Stig igen!
Tak for det store arbejde fra din side!
Når jeg tester http://w-o-p-r.dk/test/peter.html virker det helt som det
skal
men efter jeg har "flyttet" scriptet over på min hjemmeside, holder det op
med at virke
Kan du finde fejlen. Det er nok p.g.a. nogle konflikter et eller andet sted
?
Linket er: www.morgenmusikken.dk/formular.htm
> Nu har jeg ryddet lidt op i eksemplet
> < http://w-o-p-r.dk/test/peter.html>
> Hov forresten, læg også mærke til jeg har flyttet <script>..</script> op i
> <head> sektionen, hvor det hører hjemme.
Er flyttet til <head> sektionen.
hilsen
Peter
| |
Stig Johansen (18-01-2009)
| Kommentar Fra : Stig Johansen |
Dato : 18-01-09 15:08 |
|
"Peter" <petit@mobil.dk> wrote in message
news:49731c73$0$56787$edfadb0f@dtext02.news.tele.dk...
> men efter jeg har "flyttet" scriptet over på min hjemmeside, holder det op
> med at virke
> Kan du finde fejlen. Det er nok p.g.a. nogle konflikter et eller andet
sted
> ?
> Linket er: www.morgenmusikken.dk/formular.htm
Ja, du har defineret funktionen
function FrontPage_Form1_Validator(theForm)
to gange med samme navn.
Nummer 2 funktion overstyrer den første, som dermed træder ud af kraft.
Omdøb evt. den første funktion til
function validate_date()
og kald den fra den anden med
if (!validate_date()) return false ;
Du skal også give dine select boxe en id, som jeg vistnok skrev, se
eksempelvis:
<select size="1" name="Dag" id="dag" tabindex="3">
bemærk her: id="dag" er tilføjet.
Det samme gælder for måned, år osv.
Jeg har lagt et (måske) fungerende eksempel her:
http://w-o-p-r.dk/test/peter2.html
--
Med venlig hilsen/Best regards
Stig Johansen
| |
Peter (18-01-2009)
| Kommentar Fra : Peter |
Dato : 18-01-09 15:55 |
|
Hej Stig igen igen!
Håber du har lidt mere tålmodighed.
> Jeg har lagt et (måske) fungerende eksempel her:
> http://w-o-p-r.dk/test/peter2.html
Jeg har afprøvet ovennævnte side og den fungere uden problemer
men efter jeg har "flyttet" scriptet over på min hjemmeside, holder det op
med at virke
Jeg har bemærket en "fejl": Jeg får (desværre) stadig "mine" engelsk
sprogede fejlmeddelser og ikke din dansk sprogede fejlmeddelser. Hvordan kan
det være ?
Jeg har nemlig kopieret hele din HTML-kode og overskrevet min kode. Jeg
forstår slet ingen ting
Linket er: www.morgenmusikken.dk/formular.htm
hilsen
Peter
| |
Stig Johansen (18-01-2009)
| Kommentar Fra : Stig Johansen |
Dato : 18-01-09 17:52 |
|
"Peter" <petit@mobil.dk> wrote in message
news:4973431f$0$56774$edfadb0f@dtext02.news.tele.dk...
> Hej Stig igen igen!
>
> Håber du har lidt mere tålmodighed.
Masser.
> > Jeg har lagt et (måske) fungerende eksempel her:
> > http://w-o-p-r.dk/test/peter2.html
>
> Jeg har afprøvet ovennævnte side og den fungere uden problemer
> men efter jeg har "flyttet" scriptet over på min hjemmeside, holder det op
> med at virke
Du har ikke flyttet det hele.
> Jeg har bemærket en "fejl": Jeg får (desværre) stadig "mine" engelsk
> sprogede fejlmeddelser og ikke din dansk sprogede fejlmeddelser. Hvordan
kan
> det være ?
Det er fordi du stadig har en del Javascript nede i din <body>.
Det lagde jeg ikke mærke til, da jeg lavede en kopi af din side.
> Jeg har nemlig kopieret hele din HTML-kode og overskrevet min kode. Jeg
´´> forstår slet ingen ting
>
> Linket er: www.morgenmusikken.dk/formular.htm
Nu har du sat mig på arbejde :)
men det skulle jeg alligevel - på et tidspunkt.
Jeg havde en lille server kørende, men den led lidt af en død disk.
Men nu fik du mig til at finde en anden disk, og få lidt liv i 'svinet'.
En af de ting jeg skulle bruge var en diff rapport, som viser forskellen på
2 stykker HTML.
Hvis det virker, ligger den her:
http://w-o-p-r.dk/wopr.tools/wopr.diff.html
Selvom det er to teksfelter, så er det p.t. faktisk 2 URL'er der skal
indtastes.
Så hvis du i den ene boks taster din URL:
http://www.morgenmusikken.dk/formular.htm
og i den anden 'min' URL:
http://w-o-p-r.dk/test/peter2.html
så burde du få beskeden om, at du mangler linien:
if (!validate_date()) return false ;
i linie 160.
Det er den der kalder datovalideringen.
--
Med venlig hilsen/Best regards
Stig Johansen
| |
Peter (18-01-2009)
| Kommentar Fra : Peter |
Dato : 18-01-09 19:11 |
|
Hej Stig igen igen!
>
>> Håber du har lidt mere tålmodighed.
>
> Masser.
Jeg håber på utroligt meget mere tålmodighed.
> Du har ikke flyttet det hele.
Jeg har nu et par gange prøvet at markeret alt, kopier, sæt ind.
Linie 160 er også med, men i samme øjeblik jeg "saver" inden jeg
skal"oploade" omplacerer tingene sig og linie forsvinder. Hjælp! Jeg er kørt
fast!
> Det er fordi du stadig har en del Javascript nede i din <body>.
> Det lagde jeg ikke mærke til, da jeg lavede en kopi af din side.
Hvad er det helt præcist der skal fjernes ?
> Du mangler linien:
> if (!validate_date()) return false ;
> i linie 160.
> Det er den der kalder datovalideringen.
Det er da møg ærgeligt at "være så tæt på" og det så alligevel ikke virker
hilsen
Peter
| |
Peter (18-01-2009)
| Kommentar Fra : Peter |
Dato : 18-01-09 20:58 |
|
Hej igen Stig!
Var det ikke en mulighed, at sende mig din hjemmeside-fil således at jeg
kunne oploade / redigere den i mit webdesignerprogram. Så må det da snart
kunne lykkes!
hilsen
Peter
| |
Peter (19-01-2009)
| Kommentar Fra : Peter |
Dato : 19-01-09 00:00 |
|
Hej igen Stig!
Jeg kan en fejl på http://w-o-p-r.dk:80/test/peter2.html
Når siden er indlæst kommer følgende fejlmeddelelse nederst i venstre
hjørne: "Udført, men med fejl på siden" + en gul advarselstrekant med et "!"
inden i. Er det p.g.a. "noget" JavaScript der ligger og roder et eller andet
sted ? Men hvor er det så ?
hilsen
Peter
| |
Peter (19-01-2009)
| Kommentar Fra : Peter |
Dato : 19-01-09 01:04 |
|
Hej Stig!
Nu har jeg "rodet" med www.morgenmusikken.dk/formular.htm og på en eller
anden måde haft "held" til at få fejlmeddelelsen til at forsvinde. Er ikke
rigtig klar over årsagen. Kan du "lave" en "ny" hjemmeside i "din version"
på baggrund af den "nuværende" formular ? Så skulle fejlmeddelelsen give en
fejl mindre på hjemmesiden. Det er da et "lille" skridt i den rigtige
retning.
hilsen
Peter
| |
Stig Johansen (19-01-2009)
| Kommentar Fra : Stig Johansen |
Dato : 19-01-09 02:47 |
|
"Peter" <petit@mobil.dk> wrote in message
news:4973c355$0$56781$edfadb0f@dtext02.news.tele.dk...
> Hej Stig!
>
> Nu har jeg "rodet" med www.morgenmusikken.dk/formular.htm og på en eller
> anden måde haft "held" til at få fejlmeddelelsen til at forsvinde. Er ikke
> rigtig klar over årsagen. Kan du "lave" en "ny" hjemmeside i "din version"
> på baggrund af den "nuværende" formular ? Så skulle fejlmeddelelsen give
en
> fejl mindre på hjemmesiden. Det er da et "lille" skridt i den rigtige
> retning.
Ud fra det du skriver virker det som om det er Frontpage, der laver numre
med dig. Der er tilsyneladende noget 'automatik' involveret.
Det program bruger jeg ikke, og kender det heller ikke (bortset fra en
tussegammel version), så det kan jeg nok ikke hjælpe med.
Jeg har lavet en 'peter3', både som html, og som en zip fil:
http://w-o-p-r.dk/test/peter3.html
http://w-o-p-r.dk/test/peter3.zip
Nu ligger det i linie 168 og frem:
....
function FrontPage_Form1_Validator(theForm)
{
if (!validate_date()) return false ;
if (theForm.Dette_er_en.selectedIndex == 0)
....
Hold øje med linien:
if (!validate_date()) return false ;
det er den, der laver det danske datotjek.
Hvis den forsvinder, så åbn filen i en anden editor, og sæt den ind der,
inden du uploader.
Jeg bruger selv den her:
http://hapedit.free.fr/
Frontpage kender jeg som sagt ikke, og kan ikke gøre andet end at henvise
dig til .frontpage gruppen.
--
Med venlig hilsen/Best regards
Stig Johansen
| |
Peter (19-01-2009)
| Kommentar Fra : Peter |
Dato : 19-01-09 22:09 |
|
Hej Stig!
Når jeg "læser" teksten i dit JavaScript "ser" det ud som om at der i dine
koder er "indbygget" validering for indtastningsfelterne. Er det rigtigt
opfattet? Hvis svaret er "ja", har jeg (i al beskedenhed) fået den idé at
"din" validering bliver "slettet" eller midt ud af den validering jeg
allerede i forvejen har lavet i FrontPage. Årsagen til at det ikke giver
problemer på dit webhotel er at det ikke har FP Ext. og derfor viser
problemerne sig når det skal fungere på mit webhotel.
Jeg gætter på at "løsningen" er at fjerne FP valideringen, således at
JavaScript valideringen "kan komme til".
Jeg afventer lige dit svar inden jeg "går igang" om du mener det er det "der
skal til" samt om alle skrivefelter "er med" i scriptet, ud over
dato-rullemenuerne.
hilsen
Peter
> Ud fra det du skriver virker det som om det er Frontpage, der laver numre
> med dig. Der er tilsyneladende noget 'automatik' involveret.
>
> Jeg har lavet en 'peter3', både som html, og som en zip fil:
> http://w-o-p-r.dk/test/peter3.html
> http://w-o-p-r.dk/test/peter3.zip
>
> Nu ligger det i linie 168 og frem:
> ...
> function FrontPage_Form1_Validator(theForm)
> {
>
> if (!validate_date()) return false ;
>
> if (theForm.Dette_er_en.selectedIndex == 0)
> ...
> Hold øje med linien:
> if (!validate_date()) return false ;
> det er den, der laver det danske datotjek.
| |
Stig Johansen (20-01-2009)
| Kommentar Fra : Stig Johansen |
Dato : 20-01-09 01:07 |
|
"Peter" <petit@mobil.dk> wrote in message
news:4974ebda$0$56772$edfadb0f@dtext02.news.tele.dk...
> Når jeg "læser" teksten i dit JavaScript "ser" det ud som om at der i dine
> koder er "indbygget" validering for indtastningsfelterne. Er det rigtigt
> opfattet?
Ja, det stykke script er netop validering af datoer og ugedag.
> Hvis svaret er "ja", har jeg (i al beskedenhed) fået den idé at
> "din" validering bliver "slettet" eller midt ud af den validering jeg
> allerede i forvejen har lavet i FrontPage.
Det tror jeg også.
Det ser ud som om det Javascript, der starter med
function FrontPage_Form1_Validator(theForm)
er autogenereret af Frontpage.
Jeg kender ikke Frontpage, så jeg ved ikke om det sker i
redigeringsprogrammet eller ved visning fra serveren.
Problemet er, at hvis linien
if (!validate_date()) return false ;
bliver fjernet, så bliver funktionen til validering af datoerne slet ikke
kaldt.
Men du har ret i, at den validering af datofelterne, der ligge længere nede
er overflødig, for det er allerede valideret - FORUDSAT funktionen
validate_date() bliver kaldt.
> Jeg gætter på at "løsningen" er at fjerne FP valideringen, således at
> JavaScript valideringen "kan komme til".
Hvis du ikke har mulighed for at lægge manuelle kald til Javascript ind,
løser det ikke noget.
> Jeg afventer lige dit svar inden jeg "går igang" om du mener det er det
"der
> skal til" samt om alle skrivefelter "er med" i scriptet, ud over
> dato-rullemenuerne.
Som sagt er det kun datofelterne, der er med i det første stykke Javascript.
En anden ting du kan prøve først, er se om du kan rette i dette stykke HTML
i linie 393 i min version:
onsubmit="return FrontPage_Form1_Validator(this)"
rettes til:
onsubmit="return (validate_date() && FrontPage_Form1_Validator(this))"
På den måde vil den blive kaldt ved tryk på knappen, og ikke inde i det
autogenererede Javascript.
--
Med venlig hilsen/Best regards
Stig Johansen
| |
Peter (20-01-2009)
| Kommentar Fra : Peter |
Dato : 20-01-09 10:09 |
|
Hej Stig!
> Hvis du ikke har mulighed for at lægge manuelle kald til Javascript ind,
> løser det ikke noget.
Hvad er manuelle kald ? Hvor skal et sådan et placeres ?
> Som sagt er det kun datofelterne, der er med i det første stykke
> Javascript.
>
> En anden ting du kan prøve først, er se om du kan rette i dette stykke
> HTML
> i linie 393 i min version:
> onsubmit="return FrontPage_Form1_Validator(this)"
> rettes til:
> onsubmit="return (validate_date() && FrontPage_Form1_Validator(this))"
> På den måde vil den blive kaldt ved tryk på knappen, og ikke inde i det
> autogenererede Javascript.
Er rettet, men problemet er det samme!
Er det en mulig idé at "lave" et dokument med det JavaScript som hele tiden
bliver "smidt af" som burde være placeret imellem <body> og </body> i et
"eget" dokument, som man så kan linke til. Så konflikter det ikke med
FrontPage koderne, da det ikke er i "hovedsidens" HTML-kode ?
hilsen
Peter
| |
Jens Peter Karlsen (20-01-2009)
| Kommentar Fra : Jens Peter Karlsen |
Dato : 20-01-09 15:08 |
|
Scriptet autogenereres Af Frontpage når man sætter validering på et
eller flere felter. Hvis man retter i det udenfor Frontpage vil FP
rette det tilbage næste gang siden åbnes i FP. Det vil derfor være
bedst at fjerne FP valideringen og lade dit script foretage al
validering.
Regards Jens Peter Karlsen
On Tue, 20 Jan 2009 01:06:33 +0100, "Stig Johansen"
<wopr.dk@gmail.com> wrote:
>Det ser ud som om det Javascript, der starter med
>function FrontPage_Form1_Validator(theForm)
>er autogenereret af Frontpage.
>Jeg kender ikke Frontpage, så jeg ved ikke om det sker i
>redigeringsprogrammet eller ved visning fra serveren.
| |
Peter (20-01-2009)
| Kommentar Fra : Peter |
Dato : 20-01-09 15:56 |
|
Hej Jens Peter!
Dejligt med en kompetent FP-kommentar.
Jeg har "pillet" al validering af tekst-felterne i formularen, men alligevel
fungerer JavaScriptet ikke.
Min 2. overvejelse går i retning at starte på en "ren frisk" side, da min
nuværende formular er "bygget" på FP's formular-skabelon, som vel allerede
fra starten har "noget" FP script / validering indbygget, da denne funktion
kræver jo et webhotel med FP Ext. for at få det til at fungere.
Kan JavaScriptet som "kun" skal validere de 4 dato-rullemenuer, ikke
placeres i et selvstændigt dokument (måske CSS eller lignende) således at
det ikke konflikter med den eksisterende HTML-kode ?
hilsen
Peter
> Scriptet autogenereres af Frontpage når man sætter validering på et
> eller flere felter. Hvis man retter i det udenfor Frontpage vil FP
> rette det tilbage næste gang siden åbnes i FP. Det vil derfor være
> bedst at fjerne FP valideringen og lade dit script foretage al
> validering.
>
> Regards Jens Peter Karlsen
| |
Stig Johansen (21-01-2009)
| Kommentar Fra : Stig Johansen |
Dato : 21-01-09 01:13 |
|
"Peter" <petit@mobil.dk> wrote in message
news:4975e5fc$0$56777$edfadb0f@dtext02.news.tele.dk...
>
> Kan JavaScriptet som "kun" skal validere de 4 dato-rullemenuer, ikke
> placeres i et selvstændigt dokument (måske CSS eller lignende) således at
> det ikke konflikter med den eksisterende HTML-kode ?
Det kan det:
http://w-o-p-r.dk/test/peter4.html
her har jeg trukket script stumpen over i
http://w-o-p-r.dk/test/peter4.js
Referencen foregår så med (linie 21):
<script type="text/javascript" src="peter4.js"></script>
Hvis man har en separat folder til javascript, kan man også lægge .js filen
der, og bruge absolutte referencer - src="/javascript/peter4.js"
MEN det er ikke det der er dit problem.
Funktionen:
function validate_date()
er en slags programnavn, der skal køres.
Det bliver ikke kørt 'af sig selv', men skal kaldes i forbindelse med din
submit af formen.
Kaldet af den autogenererede Javascript sker her:
onsubmit="return FrontPage_Form1_Validator(this)"
Det betyder at funktionen FrontPage_Form1_Validator, og kun den, bliver
kaldt ved submit.
For (også) at kalde validate_date(), kan den enten ligge inde i funktionen
FrontPage_Form1_Validator (1. forsøg), eller blive kaldt separat i onsubmit
(2. forsøg).
Så uanset om javascriptet er en del af HTML filen eller ligger separat, skal
du på en eller anden måde få lagt kaldet af validate_date() ind i din
formular.
Jeg kender som sagt ikke (nyere) Frontpage, men Jens Peter er expert, så
måske kan han hjælpe videre.
-- Med venlig hilsen/Best regardsStig Johansen
| |
Jens Peter Karlsen (21-01-2009)
| Kommentar Fra : Jens Peter Karlsen |
Dato : 21-01-09 04:10 |
|
1 vil ikke virke pga. at FP vil "rette" scriptet.
2 burde virke.
Regards Jens Peter Karlsen.
On Wed, 21 Jan 2009 01:13:12 +0100, "Stig Johansen"
<wopr.dk@gmail.com> wrote:
>For (også) at kalde validate_date(), kan den enten ligge inde i funktionen
>FrontPage_Form1_Validator (1. forsøg), eller blive kaldt separat i onsubmit
>(2. forsøg).
| |
Stig Johansen (21-01-2009)
| Kommentar Fra : Stig Johansen |
Dato : 21-01-09 06:08 |
|
Jens Peter Karlsen wrote:
> 1 vil ikke virke pga. at FP vil "rette" scriptet.
> 2 burde virke.
Ok, så må Peter prøve igen.
I min gamle FP var der faneblade, så man kunne 'swappe' over i hhv. HTML og
preview.
Kan man ikke i nyere versioner blot hoppe over i HTML-delen og rette
onsubmit der ?
--
Med venlig hilsen
Stig Johansen
| |
Philip Nunnegaard (21-01-2009)
| Kommentar Fra : Philip Nunnegaard |
Dato : 21-01-09 06:44 |
|
"Stig Johansen" <wopr.dk@gmaill.com> skrev
> Kan man ikke i nyere versioner blot hoppe over i HTML-delen og rette
> onsubmit der ?
Mon ikke man kan.
Dog kan jeg mindes at FP 2000 også i HTML-mode ofte rettede umotiveret i éns
kode, såsnart man trykkede Ctrl+S, alternativt at den gjorde det næste gang
man åbnede siden.
| |
Peter (21-01-2009)
| Kommentar Fra : Peter |
Dato : 21-01-09 15:00 |
|
Hej Stig og Jens Peter!
Jeg har nu prøvet nedenstående forslag, men det lykkedes ikke. Det "kører i
ring" uden resultat.
linie 21 er "text/javascript" src="peter4.js"
linie 326: onsubmit="return FrontPage_Form1_Validator (this))"
103 - 326: JavaScriptet
Scriptet "forsvinder" stadig når jeg saver.
Jeg havde håbet, at det var dette script imellem <body> og </body> (som hele
tiden har været problemet) der kunne laves til et externt dokument.
Det ser temmelig håbløst. Måske burde jeg opgive den facilitet i min
formular?
hilsen
Peter
> Det kan det:
> http://w-o-p-r.dk/test/peter4.html
> her har jeg trukket script stumpen over i
> http://w-o-p-r.dk/test/peter4.js
> Referencen foregår så med (linie 21):
> <script type="text/javascript" src="peter4.js"></script>
> Hvis man har en separat folder til javascript, kan man også lægge .js
> filen
> der, og bruge absolutte referencer - src="/javascript/peter4.js"
>
> MEN det er ikke det der er dit problem.
> Funktionen:
> function validate_date()
> er en slags programnavn, der skal køres.
> Det bliver ikke kørt 'af sig selv', men skal kaldes i forbindelse med din
> submit af formen.
>
> Kaldet af den autogenererede Javascript sker her:
> onsubmit="return FrontPage_Form1_Validator(this)"
>
> Det betyder at funktionen FrontPage_Form1_Validator, og kun den, bliver
> kaldt ved submit.
> For (også) at kalde validate_date(), kan den enten ligge inde i funktionen
> FrontPage_Form1_Validator (1. forsøg), eller blive kaldt separat i
> onsubmit
> (2. forsøg).
> Så uanset om javascriptet er en del af HTML filen eller ligger separat,
> skal
> du på en eller anden måde få lagt kaldet af validate_date() ind i din
> formular.
> Jeg kender som sagt ikke (nyere) Frontpage, men Jens Peter er expert, så
> måske kan han hjælpe videre.
> -- Med venlig hilsen/Best regardsStig Johansen
>
>
>
| |
Jens Peter Karlsen (21-01-2009)
| Kommentar Fra : Jens Peter Karlsen |
Dato : 21-01-09 21:39 |
|
Eller lægge al validering i Stigs script som jeg foreslog.
Regards Jens Peter Karlsen.
On Wed, 21 Jan 2009 15:00:18 +0100, "Peter" <petit@mobil.dk> wrote:
>Scriptet "forsvinder" stadig når jeg saver.
>Jeg havde håbet, at det var dette script imellem <body> og </body> (som hele
>tiden har været problemet) der kunne laves til et externt dokument.
>
>Det ser temmelig håbløst. Måske burde jeg opgive den facilitet i min
>formular?
| |
Peter (22-01-2009)
| Kommentar Fra : Peter |
Dato : 22-01-09 20:51 |
|
Hej Stig!
> <script type="text/javascript" src="peter4.js"></script>
> Hvis man har en separat folder til javascript, kan man også lægge .js
> filen der, og bruge absolutte referencer - src="/javascript/peter4.js"
Hvilken af ovennævnte skal jeg bruge ? <script type="text/javascript"
src="peter4.js"></script> eller src="/javascript/peter4.js"
> Funktionen:
> function validate_date()
> er en slags programnavn, der skal køres.
> Det bliver ikke kørt 'af sig selv', men skal kaldes i forbindelse med din
> submit af formen.
Ikke forstået
> Kaldet af den autogenererede Javascript sker her:
> onsubmit="return FrontPage_Form1_Validator(this)"
>
> For (også) at kalde validate_date(), kan den enten ligge inde i funktionen
> FrontPage_Form1_Validator (1. forsøg), eller blive kaldt separat i
> onsubmit (2. forsøg)
Heller ikke forstået
..
> Så uanset om javascriptet er en del af HTML filen eller ligger separat,
> skal du på en eller anden måde få lagt kaldet af validate_date() ind i din
> formular.
Hvordan/Hvor placerer man kaldet: validate_date() i formularen ?
Jeg har tidligere anvendt javascript i mine sider fremstillet i Front Page,
placeret i <head> </head> uden at der blev problemer ud af det. Vil det i
dette tilfælde ikke være muligt at "undgå" at placere javacript i <body>
</boby>, da FP ikke "tillader" det - men bare "fjerner" scriptet.
hilsen
Peter
| |
Stig Johansen (23-01-2009)
| Kommentar Fra : Stig Johansen |
Dato : 23-01-09 02:52 |
|
Peter wrote:
>> <script type="text/javascript" src="peter4.js"></script>
>> Hvis man har en separat folder til javascript, kan man også lægge .js
>> filen der, og bruge absolutte referencer - src="/javascript/peter4.js"
>
> Hvilken af ovennævnte skal jeg bruge ? <script type="text/javascript"
> src="peter4.js"></script> eller src="/javascript/peter4.js"
Det afhænger af din mappestruktur på serveren.
Hvis .js filen ligger samme sted som html filen, skal du bruge
src="peter4.js".
Hvis du derimod har en mappe til javascript, som jeg har, skal .js filen
lægges der, og kaldes med src="/javascript/peter4.js"
> Heller ikke forstået
Tænk på javascriptet som en slags program.
Hvis du f.eks. lægger et qprogram på dit 'skrivebord', ligger det der, men
det bliver ikke kørt af sig selv.
Det bliver først kørt når man dobbeltklikker på ikonet.
Det er det samme med funktionen validate_date() i scriptet.
Det bliver ikke kørt af sig selv, uanset hvor det ligger head,body eller
eksternt.
>> Så uanset om javascriptet er en del af HTML filen eller ligger separat,
>> skal du på en eller anden måde få lagt kaldet af validate_date() ind i
>> din formular.
>
> Hvordan/Hvor placerer man kaldet: validate_date() i formularen ?
Hvor, har vi snakket om et par gange.
Den ene mulighed er at kalde inde fra funktionen FrontPage_Form1_Validator,
men den funktion 'retter' Frontpage selv til, og fjerner dermed kaldet, så
den dutter ikke.
Den anden mulighed er lægge det en separat i onsubmit, dvs:
> onsubmit="return FrontPage_Form1_Validator(this)"
> rettes til:
> onsubmit="return (validate_date() && FrontPage_Form1_Validator(this))"
Hvordan du gør det i Frontpage ved jeg ikke.
Som sagt bruger jeg en almindelig teksteditor til den slags ting, og der
skriver man bare tingene - eller copy/paster.
Min gamle Frontpage (2000) har et faneblad, hvor man direkte kan rette i
html'et.
Alternativt kan du åbne filen i notepad eller lignq, efter du har gemt den
og rette onsubmit der.
> Jeg har tidligere anvendt javascript i mine sider fremstillet i Front
> Page, placeret i <head> </head> uden at der blev problemer ud af det. Vil
> det i dette tilfælde ikke være muligt at "undgå" at placere javacript i
> <body> </boby>, da FP ikke "tillader" det - men bare "fjerner" scriptet.
Uanset hvor det ligger, så skal scriptet 'køres'.
Hvis man bare skriver noget Javascript, så bliver det kørt der hvor det
står.
Men hvis man definerer en funktion til senere brug, som i dette tilfælde,
bliver den ikke kørt.
Det skal heller ikke køres når man indlæser siden, men først når man trykker
på knappen. Når man trykker på knappen, så aktiveres det stykke javascript,
der står i onsubmit="osv".
Dvs. når der står:
onsubmit="return FrontPage_Form1_Validator(this)"
betyder der 'Kør programmet FrontPage_Form1_Validator'
hvis du retter det til
onsubmit="return (validate_date() && FrontPage_Form1_Validator(this))"
betyder det 'kør først validate_date(), og kør derefter
FrontPage_Form1_Validator'
--
Med venlig hilsen
Stig Johansen
| |
Peter (30-01-2009)
| Kommentar Fra : Peter |
Dato : 30-01-09 13:37 |
|
Hej Stig!
For ikke at gøre det uoverskueligt (for mig selv) har jeg nu fjernet al
FP-validering og kun anvendt dit dato-javascript. Så lang så godt.
Herefter har jeg læst denne artikel http://www.html.dk/artikler/00016/ om
hvordan validering af et tekstfelt skal laves, men det fungerer åbenbart
ikke "hos mig" www.morgenmusikken.dk/formular.htm Jeg har lavet det på
feltet "Fornavne" (Hvad_skal_vi_spille_til)
Kan årsagen være at dato-valideringen er i en "form" som et "lukket" og
tekst-valideringen er i et javascript for sig selv. Burde det hele være i
samme "form" ?
hilsen
Peter
| |
Jens Peter Karlsen (30-01-2009)
| Kommentar Fra : Jens Peter Karlsen |
Dato : 30-01-09 18:55 |
|
Husk at validere din HTML kode. Du mangler at afslutte script blokken
inden den sidste form.
On Fri, 30 Jan 2009 13:37:05 +0100, "Peter" <petit@mobil.dk> wrote:
>Kan årsagen være at dato-valideringen er i en "form" som et "lukket" og
>tekst-valideringen er i et javascript for sig selv. Burde det hele være i
>samme "form" ?
>
| |
Peter (30-01-2009)
| Kommentar Fra : Peter |
Dato : 30-01-09 21:28 |
|
Hej Jens Peter!
Mit "boldøje" kan ikke finde stedet i koden. Kan du hjælpe lidt på vej ?
Hvad kalder du: "script blokken inden den sidste form".
Link: www.morgenmusikken.dk/formular.htm
hilsen
Peter
"Jens Peter Karlsen" <jpkarlsen@mvps.org> skrev i en meddelelse
news:4bf6o4lf62ac13gn1aeu7prgui60398qh1@4ax.com...
> Husk at validere din HTML kode. Du mangler at afslutte script blokken
> inden den sidste form.
>
> On Fri, 30 Jan 2009 13:37:05 +0100, "Peter" <petit@mobil.dk> wrote:
>
>>Kan årsagen være at dato-valideringen er i en "form" som et "lukket" og
>>tekst-valideringen er i et javascript for sig selv. Burde det hele være i
>>samme "form" ?
>>
| |
Peter (31-01-2009)
| Kommentar Fra : Peter |
Dato : 31-01-09 20:03 |
|
Hej Stig!
Jeg kører stadig rundt i de samme problemer, selvom jeg tid efter anden
prøver nye tiltag!
Jeg har denne gang fjernet al FP-validering og fået dit "dato-script" til at
virke. Derefter ville jeg så gå lidt videre for at validere de andre felter
i formularen, på den måde der er beskrevet her:
http://www.html.dk/artikler/00016/ , men nu virker "dato-scriptet" ikke
længere! Er problemet at der nu (igen) er 2 function validerings-linier (3.
tekstlinie + 18. tekstlinie) som så modarbejder / ophæver hinanden ? Hvilken
linie skal evt. væk for at det vil virke igen ?
hilsen
Peter
<script type="text/javascript">
<!-- Start
function validering()
{
error = 0;
if((document.forms[0].Vi_skal_spille_for.value=='') && (error==0))
{
alert('Du skal udfylde feltet med fornavne!');
document.forms[0].Vi_skal_spille_for.focus();
error = 1;
}
if(error == 0)
document.forms[0].submit();
}
// Slut -->
</script>
<script Language="JavaScript" Type="text/javascript">
function FrontPage_Form1_Validator(theForm)
{
var dag = document.getElementById('dag');
var dato = document.getElementById('dato');
var mdr = document.getElementById('mdr');
var aaret = document.getElementById('aaret');
| |
Stig Johansen (31-01-2009)
| Kommentar Fra : Stig Johansen |
Dato : 31-01-09 23:20 |
|
Peter wrote:
> Jeg har denne gang fjernet al FP-validering og fået dit "dato-script" til
> at virke. Derefter ville jeg så gå lidt videre for at validere de andre
> felter i formularen, på den måde der er beskrevet her:
> http://www.html.dk/artikler/00016/ , men nu virker "dato-scriptet" ikke
> længere! Er problemet at der nu (igen) er 2 function validerings-linier
> (3. tekstlinie + 18. tekstlinie) som så modarbejder / ophæver hinanden ?
> Hvilken linie skal evt. væk for at det vil virke igen ?
Du har fået lavet lidt rod i dit html.
Denne her <form i linie 25:
<form method="post" action="mailto:kontakt@morgenmusikken.dk">
skal du slette.
endvidere har du fået lavet en ekstra <form i linie 234:
<form action="" method="post" onsubmit="validering();return false;">
Den 'ophæver' den første <form, der kalder FrontPage_Form1_Validator, så den
skal du også slette.
Denne her blok:
<script type="text/javascript">
<!-- Start
function validering()
{
error = 0;
if((document.forms[0].Vi_skal_spille_for.value=='') && (error==0))
{
alert('Du skal udfylde feltet med fornavne!');
document.forms[0].Vi_skal_spille_for.focus();
error = 1;
}
if(error == 0)
document.forms[0].submit();
}
// Slut -->
</script>
skal du også slette igen.
Når du har gjort det, så har du en funktion der starter med:
<script Language="JavaScript" Type="text/javascript">
function FrontPage_Form1_Validator(theForm)
{
....osv
og slutter med
if ( ugedagvalgt != ugedag ) {
alert ('Ugedag passer ikke med datoen');
return false ;
}
return (true);
}
</script>
Når du så vil lægge resten af valideringen ind, skal du lægge den inde i
denne funktion, altså før "return (true);".
Bemærk her, at denne funktion er bygget lidt anderledes end den du henviser
til.
Her returneres false, hvis formen ikke skal submittes, og true hvis den
skal.
Så i stedet for at lave valideringen som du gør nu:
if((document.forms[0].Vi_skal_spille_for.value=='') && (error==0))
{
alert('Du skal udfylde feltet med fornavne!');
document.forms[0].Vi_skal_spille_for.focus();
error = 1;
}
skal du i stedet lave den som:
if (theForm.Vi_skal_spille_for.value=='')
{
alert('Du skal udfylde feltet med fornavne!');
theForm.Vi_skal_spille_for.focus();
return false ;
}
læg også mærke til, at document.forms[0] er udskiftet med theForm, som
bliver overført til funktionen.
--
Med venlig hilsen
Stig Johansen
| |
Peter (01-02-2009)
| Kommentar Fra : Peter |
Dato : 01-02-09 13:58 |
|
Hej Stig igen!
> Når du så vil lægge resten af valideringen ind, skal du lægge den inde i
> denne funktion, altså før "return (true);".
Her er slutningen af "dato-valideringen" + valideringen af et tekstfelt:
if ( ugedagvalgt != ugedag ) {
alert ('Ugedag passer ikke med datoen');
return false ;
}
if (theForm.Vi_skal_spille_for.value==")
{
alert('Du skal udfylde feltet med fornavne!');
theForm.Vi_skal_spille_for.focus():
return false ;
}
return (true);
}
</script>
Efter at have sat den extra validering ind, virker valideringen nu ikke på
"dato-rullemenuen" og alligevel heller ikke på tekstfeltet. Når
"send"-knappen activeres går den direkte til "svar"-siden hvor man ser
summen af hvad man har indtastet. (uden validering)
hilsen
Peter
| |
Stig Johansen (02-02-2009)
| Kommentar Fra : Stig Johansen |
Dato : 02-02-09 02:48 |
|
Peter wrote:
> if (theForm.Vi_skal_spille_for.value==")
Det skal være 2 stk ' og ikke et stk ".
--
Med venlig hilsen
Stig Johansen
| |
Peter (02-02-2009)
| Kommentar Fra : Peter |
Dato : 02-02-09 09:00 |
|
Hej Stig!
> Det skal være 2 stk ' og ikke et stk ".
Ikke forstået Her er de "dobbelte": alert("Du skal vælge et årstal");
if (theForm.'Vi_skal_spille_for.value==') / Er det her rigtigt eller: if
(theForm.'Vi_skal_spille_for.value'==)
{
alert('Du skal udfylde feltet med fornavne!'); / Her er de "enkelte"
theForm.Vi_skal_spille_for.focus():
hilsen
Peter
PS: Validering virker ikke.
| |
Stig Johansen (02-02-2009)
| Kommentar Fra : Stig Johansen |
Dato : 02-02-09 11:17 |
|
Peter wrote:
> Hej Stig!
>
>> Det skal være 2 stk ' og ikke et stk ".
>
> Ikke forstået Her er de "dobbelte": alert("Du skal vælge et årstal");
I nogle sprog bruger man " som afgrænsning af en streng, og i nogle andre
bruger man '
I javascript kan man bruge begge dele, så:
Dette er en "streng" opfattes på samme måde som Dette er en 'streng'.
> if (theForm.'Vi_skal_spille_for.value==') / Er det her rigtigt eller:
> if (theForm.'Vi_skal_spille_for.value'==)
Nej, enten theForm.Vi_skal_spille_for.value=='' ( to stk. ') eller
theForm.Vi_skal_spille_for.value=="" ( to stk ") skal du bruge.
--
Med venlig hilsen
Stig Johansen
| |
Peter (02-02-2009)
| Kommentar Fra : Peter |
Dato : 02-02-09 12:56 |
|
Hej Stig igen!
> Nej, enten theForm.Vi_skal_spille_for.value=='' ( to stk. ') eller
> theForm.Vi_skal_spille_for.value=="" ( to stk ") skal du bruge.
Nu har jeg rette koden til som ovenfor skrevet, men alligevel fungerer det
ikke.
Hverken dato-valideringen eller felt-valideringen. Har du "et bud" på hvad
problemet kan være?
Efter valideringen af tekstfeltet er sat på, bliver siden indlæst med en
fejl. Gul trekant i nederste venstre hjørne.
www.morgenmusikken.dk/formular.htm - siden med felt-validering (og
fejlmeddelelse) - (uden FP-validering!)
www.morgenmusikken.dk/formular-org.htm - siden kun med dato-validering -
(uden FP-validering!)
hilsen
Peter
| |
Stig Johansen (02-02-2009)
| Kommentar Fra : Stig Johansen |
Dato : 02-02-09 16:56 |
|
Peter wrote:
> Hej Stig igen!
>
>> Nej, enten theForm.Vi_skal_spille_for.value=='' ( to stk. ') eller
>> theForm.Vi_skal_spille_for.value=="" ( to stk ") skal du bruge.
>
> Nu har jeg rette koden til som ovenfor skrevet, men alligevel fungerer det
> ikke.
>
> Hverken dato-valideringen eller felt-valideringen. Har du "et bud" på hvad
> problemet kan være?
Ja, du har fået smuttet en højre parantes for meget ind.
Linien:
if (theForm).Vi_skal_spille_for.value=='')
skal være:
if (theForm.Vi_skal_spille_for.value=='')
--
Med venlig hilsen
Stig Johansen
| |
Peter (02-02-2009)
| Kommentar Fra : Peter |
Dato : 02-02-09 18:59 |
|
Hej Stig igen igen!
Nu har jeg fået fjernet den højre parantes, der var for meget, men alligevel
fungerer valideringen ikke.
Hverken dato-valideringen eller felt-valideringen. Har du et forslag til
hvad problemet kan være?
Årsagen må vel have noget med nedenstående felt-valideringen at gøre.
Formularen fungerer fint udelukkende med data-valideringen
}
if (theForm.Vi_skal_spille_for.value=='')
{
alert('Du skal udfylde feltet med fornavne!');
theForm.Vi _skal_spille_for.forcus();
return false ;
}
www.morgenmusikken.dk/formular.htm - siden med felt-validering (og stadig
fejlmeddelelse)
www.morgenmusikken.dk/formular-org.htm - siden udelukkende med
dato-validering
hilsen
Peter
| |
Stig Johansen (03-02-2009)
| Kommentar Fra : Stig Johansen |
Dato : 03-02-09 05:42 |
|
Peter wrote:
> Hej Stig igen igen!
>
> Nu har jeg fået fjernet den højre parantes, der var for meget, men
> alligevel fungerer valideringen ikke.
>
> Hverken dato-valideringen eller felt-valideringen. Har du et forslag til
> hvad problemet kan være?
Ja, se længere nede.
Der sker det, at når der er en fejl i parsingen af javascriptet, som den med
højre parantesen, så er det hele funktionen, der sættes ud af kraft.
Så det er alt eller intet, der virker.
Jeg bruger Firefox med en plugin, som automatisk giver både fejlmelding og
placering, men kun den første fejl, og ikke eventuelle flere.
Her er der en (=2) ekstra fejl, som først dukker op qår den første er
rettet.
>
> Årsagen må vel have noget med nedenstående felt-valideringen at gøre.
Ja.
> alert('Du skal udfylde feltet med fornavne!');
> theForm.Vi _skal_spille_for.forcus();
Her har du fået sneget en blank ind efter Vi, og et ekstra r i forcus.
Ret det til:
theForm.Vi_skal_spille_for.focus();
(Denne gang har jeg testet for flere fejl
--
Med venlig hilsen
Stig Johansen
| |
Peter (03-02-2009)
| Kommentar Fra : Peter |
Dato : 03-02-09 09:03 |
|
Hej Stig!
Nu fungerer det !!! - Rigtig mange tak !!!
Jeg har nu øget antallet af valideringer af tekstfelter og det formularen
virker stadigvæk. Utroligt ! www.morgenmusikken.dk/formular.htm
Men ....
Efter "succes'en" m.h.t. tekstfelterne, så ville jeg også gerne have
valideret rullemenuerne også. Jeg "imiterede" dit forslag m.h.t.
"dato-valideringen", ved bl.a. at give rullemenuen et "id". Men nu validerer
hele formularen slet ikke. Vil du kigge på det ?
www.morgenmusikken.dk/formular+.htm
hilsen
Peter
| |
Peter (03-02-2009)
| Kommentar Fra : Peter |
Dato : 03-02-09 09:16 |
|
Hej Stig!
Nu vrøvler jeg. Formularen virker, men ikke "de nye" rullemenuer
Inden "førsøget" lavede jeg en ny kopi af siden for ikke at ødelægge det der
var OK!
www.morgenmusikken.dk/formular+.htm - Vil du kigge på problemet ?
hilsen
Peter
| |
Stig Johansen (04-02-2009)
| Kommentar Fra : Stig Johansen |
Dato : 04-02-09 01:08 |
|
"Peter" <petit@mobil.dk> wrote in message
news:4987fd5a$0$56770$edfadb0f@dtext02.news.tele.dk...
> Hej Stig!
>
> Nu vrøvler jeg. Formularen virker, men ikke "de nye" rullemenuer
>
> Inden "førsøget" lavede jeg en ny kopi af siden for ikke at ødelægge det
der
> var OK!
> www.morgenmusikken.dk/formular+.htm - Vil du kigge på problemet ?
Her hos mig (i firefox) virker den godt nok.
Den kommer med:
Du skal foretage et valg!
som du også har angivet i javascriptet:
.....
if (hvor_fandt_du_hjemmesiden.selectedIndex < 1 )
{
alert("Du skal foretage et valg!");
hvor_fandt_du_hjemmesiden.focus();
return (false);
}
.....Af hensyn til dine brugere, kunne du godt skrive lidt om et valg af
hvad?Eks. "Du skal vælge et af punkterne hvor du har set hjemmesiden."
--
Med venlig hilsen/Best regards
Stig Johansen
| |
Peter (04-02-2009)
| Kommentar Fra : Peter |
Dato : 04-02-09 07:36 |
|
Hej Stig igen!
>> www.morgenmusikken.dk/formular+.htm - Vil du kigge på problemet ?
>
> Her hos mig (i firefox) virker den godt nok.
> Den kommer med:
> Du skal foretage et valg!
> som du også har angivet i javascriptet:
> ....
> if (hvor_fandt_du_hjemmesiden.selectedIndex < 1 )
> {
> alert("Du skal foretage et valg!");
> hvor_fandt_du_hjemmesiden.focus();
> return (false);
> }
> ....Af hensyn til dine brugere, kunne du godt skrive lidt om et valg af
> hvad?Eks. "Du skal vælge et af punkterne hvor du har set hjemmesiden."
Hos mig virker valideringen ikke på disse (nye) rullemenuer: "Jeg ønsker at
foretage en", "Hvad skal vi spille til", "Hvilket klokkeslet", "Hvor fandt
du hjemmesiden". Jeg IE 7.
"Mærkede" du kun scriptet ved den sidste rullemenu: "Hvor fandt du
hjemmesiden" og ikke de 3 første menuer ?
Den skal gerne virke på IE også, da jeg på mit abb. hos "Google Analytics"
kan aflæse at ca. 80% af dem der besøger hjemmesiden bruger IE. Så, dermed
har jeg et problem!
hilsen
Peter
| |
Peter (04-02-2009)
| Kommentar Fra : Peter |
Dato : 04-02-09 08:00 |
|
Hej Stig igen, igen!
Nu har jeg prøvet at bruge Firfox. Den reagerer (til stor undren) på sidste
rullemenu. "Hvordan fandt du hjemmesiden". Det gør IE 7 desværre ikke.
Hvis man i formularen (i Firefox) straks bruger "Send"-knappen giver den som
første fejlmeddelelse: "Du skal vælge en ugedag" og dermed reagerer den ikke
på de 3 første rullemenuer
Vil du kigge på problemet ? - www.morgenmusikken.dk/formular+.htm
> Hos mig virker valideringen ikke på disse (nye) rullemenuer: "Jeg ønsker
> at foretage en", "Hvad skal vi spille til", "Hvilket klokkeslet", "Hvor
> fandt du hjemmesiden". Jeg IE 7.
> "Mærkede" du kun scriptet ved den sidste rullemenu: "Hvor fandt du
> hjemmesiden" og ikke de 3 første menuer ?
> Den skal gerne virke på IE også, da jeg på mit abb. hos "Google Analytics"
> kan aflæse at ca. 80% af dem der besøger hjemmesiden bruger IE. Så, dermed
> har jeg et problem!
hilsen
Peter
| |
Stig Johansen (04-02-2009)
| Kommentar Fra : Stig Johansen |
Dato : 04-02-09 14:57 |
|
"Peter" <petit@mobil.dk> wrote in message
news:49893cf4$0$56783$edfadb0f@dtext02.news.tele.dk...
> Hej Stig igen, igen!
>
> Nu har jeg prøvet at bruge Firfox. Den reagerer (til stor undren) på
sidste
> rullemenu. "Hvordan fandt du hjemmesiden". Det gør IE 7 desværre ikke.
>
> Hvis man i formularen (i Firefox) straks bruger "Send"-knappen giver den
som
> første fejlmeddelelse: "Du skal vælge en ugedag" og dermed reagerer den
ikke
> på de 3 første rullemenuer
>
> Vil du kigge på problemet ? - www.morgenmusikken.dk/formular+.htm
>
> > Hos mig virker valideringen ikke på disse (nye) rullemenuer: "Jeg ønsker
> > at foretage en", "Hvad skal vi spille til", "Hvilket klokkeslet", "Hvor
> > fandt du hjemmesiden". Jeg IE 7.
> > "Mærkede" du kun scriptet ved den sidste rullemenu: "Hvor fandt du
> > hjemmesiden" og ikke de 3 første menuer ?
Ja, jeg havde ikke set, at du havde lagt disse linier ind:
var dette_er_en = document.getElementById('dette_er_en');
var hvad_skal_vi_spille_til =
document.getElementById('hvad_skal_vi_spille_til');
var klokkeslet = document.getElementById('klokkeslet');
var hvor_fandt_du_hjemmesiden =
document.getElementById('hvor_fandt_du_hjemmesiden');
Men disse linier gør ikke andet end at oprette en variabel ud fra den
tilhørende id.
Den eneste jeg kan se du har oprettet er:
.....
if (hvor_fandt_du_hjemmesiden.selectedIndex < 1 )
{
alert("Hvor fandt du hjemmesiden?");
hvor_fandt_du_hjemmesiden.focus();
return (false);
}
.....Du behøver ikke at have linien med
var hvor_fandt_du_hjemmesiden =
document.getElementById('hvor_fandt_du_hjemmesiden');
øverst i funktionen, men kan med fordel placere dem sammen med
'valideringsblokken', så det står som:
.....
var hvor_fandt_du_hjemmesiden =
document.getElementById('hvor_fandt_du_hjemmesiden');
if (hvor_fandt_du_hjemmesiden.selectedIndex < 1 )
{
alert("Hvor fandt du hjemmesiden?");
hvor_fandt_du_hjemmesiden.focus();
return (false);
}
.....
På den måde er det nemmere at bytte rundt på 'blokkene'.
Javascriptet bliver afviklet fra start til slut i den rækkefølge det står,
så du kan flytte rundt på 'blokkene', så det passer med feltrækkefølgen på
din form.
Valideringen af "Hvor fandt du hjemmesiden" virker fint her i IE, men de
andre 3 har du tilsyneladende ikke implementeret.
-- Med venlig hilsen/Best regardsStig Johansen
| |
Peter (04-02-2009)
| Kommentar Fra : Peter |
Dato : 04-02-09 19:33 |
|
Hej Stig!
Så er det "lige før" at formularen "kommer i mål"!
Jeg har endnu 2 "problemer" som jeg gerne vil have lidt hjælp til:
1) Hvis hele formularen er udfyldt og trykker "Send" og man får en
fejlmeddelelse vedr. dato-valideringen: "Ugedagen passer ikke til datoen"
springer den ikke automatisk op til dato-rullemenuen, som den ellers ville
have gjort hvis man f.eks. havde "glemt" at indstille et af de 4 "afsnit" af
rullemenuen. Kan det lade sig gøre ?
2) Er det muligt at udvidde kravet til valideringen. Jeg tænker på at jeg
ind i mellem har via formularen modtaget en del spam hvor "spammeren" tror
at: Adresse/Adressen er felter til e-mailadresser. Kan man tilføje til
"kravet" ikke bare at feltet skal udfyldes, men også at tekster der
indeholder @ bliver afvist.
På forhånd, tak!
hilsen
Peter
| |
Peter (04-02-2009)
| Kommentar Fra : Peter |
Dato : 04-02-09 19:47 |
|
Hej igen Stig!
Lige en opfølgning på forrige mail:
> 2) Er det muligt at udvidde kravet til valideringen. Jeg tænker på at jeg
> ind i mellem har via formularen modtaget en del spam hvor "spammeren" tror
> at: Adresse/Adressen er felter til e-mailadresser. Kan man tilføje til
> "kravet" ikke bare at feltet skal udfyldes, men også at tekster der
> indeholder @ bliver afvist.
"Alerten" skal sevfølgelig ikke indeholde "en besked" til spammeren om at
"teksten"
ikke kan accepteres p.g.a. den indeholder et @
hilsen og mange tak!
Peter
| |
Stig Johansen (04-02-2009)
| Kommentar Fra : Stig Johansen |
Dato : 04-02-09 21:37 |
|
Peter wrote:
> Hej Stig!
>
> Så er det "lige før" at formularen "kommer i mål"!
>
> Jeg har endnu 2 "problemer" som jeg gerne vil have lidt hjælp til:
>
> 1) Hvis hele formularen er udfyldt og trykker "Send" og man får en
> fejlmeddelelse vedr. dato-valideringen: "Ugedagen passer ikke til datoen"
> springer den ikke automatisk op til dato-rullemenuen, som den ellers ville
> have gjort hvis man f.eks. havde "glemt" at indstille et af de 4 "afsnit"
> af rullemenuen. Kan det lade sig gøre ?
Det er faktisk 2 steder, der ikke 'springes tilbage', både datoen og
ugedagen.
Det drejer sig om disse linier:
if ( mydate.getFullYear() != aaretvalgt || mydate.getMonth()+1 != manedvalgt
|| mydate.getDate() != datovalgt ) {
alert ('Ugyldig dag/måned ' + mydate.toDateString() );
return false;
}
if ( ugedagvalgt != ugedag ) {
alert ('Ugedag passer ikke til datoen');
return false;
}
Lidt afhængig af hvilket felt du vil sætte fokus på, skal du indsætte f.eks.
dag.focus();
umiddelbart før
return false;
Valideringen for ugedagen vil så se sådan ud:
if ( ugedagvalgt != ugedag ) {
alert ('Ugedag passer ikke til datoen');
dag.focus();
return false;
}
Det samme med datoen, og der kan du sætte fokus på dato,mdr eller aaret - se
evt længere oppe hvad de hedder.
> 2) Er det muligt at udvidde kravet til valideringen. Jeg tænker på at jeg
> ind i mellem har via formularen modtaget en del spam hvor "spammeren" tror
> at: Adresse/Adressen er felter til e-mailadresser. Kan man tilføje til
> "kravet" ikke bare at feltet skal udfyldes, men også at tekster der
> indeholder @ bliver afvist.
Det kan man godt, men det vil ikke hjælpe dig noget.
Der er med garanti tale om automatiserede POST's, hvor bot'en ikke bruger
javascript, og det vil derfor ikke have nogen virkning.
For at bot-sikre sådan en formular, skal man (også) have fat i noget
decideret serverside programmering.
--
Med venlig hilsen
Stig Johansen
| |
Peter (05-02-2009)
| Kommentar Fra : Peter |
Dato : 05-02-09 11:07 |
|
Hej Stig!
> Det er faktisk 2 steder, der ikke 'springes tilbage', både datoen og
> ugedagen.
Jeg har anvendt dit forslag og det virker m.h.t. at springe tilbage. Tak for
det!
Jeg har nu prøvet at udbygge scriptet, sålede at den reagerer på begge
muligheder. Uanset om det er ugedagen eller datoen der ikke er korrekt. Med
nedenstående script, springer den tilbage, men efter et af parameterne er
rettet kommer den stadig med en fejlmeddelelse og går ikke videre Vil
du tage et kig på problemet. www.morgenmusikken.dk/formular+.htm - På
forhånd, tak!
hilsen
Peter
if ( ugedagvalgt != ugedag ) {
alert ('Ugedag passer ikke til datoen');
dag.focus();
return false;
}
if ( datovalgt != dato ) {
alert ('Datoen passer ikke til ugedagen');
dato.focus();
return false;
}
| |
Peter (05-02-2009)
| Kommentar Fra : Peter |
Dato : 05-02-09 12:42 |
|
Hej Stig - Rettelse!
Det er "kun" nedenstående scipt der ikke virker efter hensigten. Scriptet
går tilbage og "highlighter" 1. rullemenu "ugedagen" og desværre ikke 2.
rullemenu "datoen" som ønsket. Har jeg lavet en fejl i scriptet ?
if ( datovalgt != dato ) {
alert ('Datoen passer ikke til ugedagen');
dato.focus();
return false;
}
Vil du tage et kig på "problemet". www.morgenmusikken.dk/formular+.htm
På forhånd, tak!
hilsen
Peter
| |
Stig Johansen (05-02-2009)
| Kommentar Fra : Stig Johansen |
Dato : 05-02-09 16:44 |
|
"Peter" <petit@mobil.dk> wrote in message
news:498ad094$0$56793$edfadb0f@dtext02.news.tele.dk...
> Hej Stig - Rettelse!
>
> Det er "kun" nedenstående scipt der ikke virker efter hensigten. Scriptet
> går tilbage og "highlighter" 1. rullemenu "ugedagen" og desværre ikke 2.
> rullemenu "datoen" som ønsket. Har jeg lavet en fejl i scriptet ?
Ja, det var ikke meningen du skudvide scriptet med:
> if ( datovalgt != dato ) {
> alert ('Datoen passer ikke til ugedagen');
> dato.focus();
> return false;
> }
så slet det igen, men at du skulle lægge en passende fokus ind i stumpen:
if ( mydate.getFullYear() != aaretvalgt || mydate.getMonth()+1 != manedvalgt
|| mydate.getDate() != datovalgt ) {
alert ('Ugyldig dag/måned ' + mydate.toDateString() );
return false;
}
f.eks hvis fokus skal sættes på datoen (og evt. tilpasse meddelelsen):
if ( mydate.getFullYear() != aaretvalgt || mydate.getMonth()+1 != manedvalgt
|| mydate.getDate() != datovalgt ) {
alert ('Ugyldig dag/måned ' + mydate.toDateString() );
dato.focus(); return false;
}
-- Med venlig hilsen/Best regardsStig Johansen
| |
Peter (05-02-2009)
| Kommentar Fra : Peter |
Dato : 05-02-09 20:20 |
|
Hej Stig igen!
> Du skal lægge en passende fokus ind i stumpen:
> if ( mydate.getFullYear() != aaretvalgt || mydate.getMonth()+1 !=
> manedvalgt
> || mydate.getDate() != datovalgt ) {
> alert ('Ugyldig dag/måned ' + mydate.toDateString() );
> dato.focus(); return false;
> }
Jeg har anvendt ovenstående script, men i min browser går den retur og
markerer ugedag-menuen (1. rullemenu) og desværre ikke dato-menuen (2.
rullemenu). Har du måske en idé hvad problemet kan være ?
hilsen
Peter
| |
Stig Johansen (06-02-2009)
| Kommentar Fra : Stig Johansen |
Dato : 06-02-09 00:49 |
|
"Peter" <petit@mobil.dk> wrote in message
news:498b3bf6$0$56790$edfadb0f@dtext02.news.tele.dk...
> Hej Stig igen!
>
> > Du skal lægge en passende fokus ind i stumpen:
>
> > if ( mydate.getFullYear() != aaretvalgt || mydate.getMonth()+1 !=
> > manedvalgt
> > || mydate.getDate() != datovalgt ) {
> > alert ('Ugyldig dag/måned ' + mydate.toDateString() );
> > dato.focus(); return false;
> > }
>
> Jeg har anvendt ovenstående script, men i min browser går den retur og
> markerer ugedag-menuen (1. rullemenu) og desværre ikke dato-menuen (2.
> rullemenu). Har du måske en idé hvad problemet kan være ?
Jeg ved ikke om der er kommet rod i versionerne, men her sætter den fokus på
datoen, både i Firefox og IE (efter jeg rettede en fejl).
Nogle gange kan cachen drille, så prøv at reloade/refreshe når du har rettet
i filen.
Fejlen:
Du har defineret valget som:
<select size="1" name="Vi_skal_spille_til"
id="hvad_skal_vi_spille_til" tabindex="2">
altså med id'en "hvad_skal_vi_spille_til"
men kalder den med:
document.getElementById('vi_skal_spille_til');
id'en og getElementById skal 'hedde' det samme, så en af dem skal du rette
til.
Som det er nu, fejler scriptet, og man går direkte til send.
-- Med venlig hilsen/Best regardsStig Johansen
| |
Peter (06-02-2009)
| Kommentar Fra : Peter |
Dato : 06-02-09 10:26 |
|
Hej Stig!
> Jeg ved ikke om der er kommet rod i versionerne, men her sætter den fokus
> på
> datoen, både i Firefox og IE (efter jeg rettede en fejl).
>
> Nogle gange kan cachen drille, så prøv at reloade/refreshe når du har
> rettet
> i filen.
Jeg har tømt cachen og uploadet en rettet version.
Du skriver at den nu kan sætte focus på datoen, altså 2. rullemenu.
Når jeg vælger en "forkert" dato - Torsdag 2. januar 2009, burde den "gå
retur" og markere 2. rullemenu (datoen) og komme med fejlmeddelelsen "Datoen
passer i til ugedagen"
Har du et "bud" på problemet ?
hilsen
Peter
| |
Stig Johansen (06-02-2009)
| Kommentar Fra : Stig Johansen |
Dato : 06-02-09 18:08 |
|
Peter wrote:
> Hej Stig!
>
>> Jeg ved ikke om der er kommet rod i versionerne, men her sætter den fokus
>> på
>> datoen, både i Firefox og IE (efter jeg rettede en fejl).
>>
>> Nogle gange kan cachen drille, så prøv at reloade/refreshe når du har
>> rettet
>> i filen.
>
> Jeg har tømt cachen og uploadet en rettet version.
>
> Du skriver at den nu kan sætte focus på datoen, altså 2. rullemenu.
>
> Når jeg vælger en "forkert" dato - Torsdag 2. januar 2009, burde den "gå
> retur" og markere 2. rullemenu (datoen) og komme med fejlmeddelelsen
> "Datoen passer i til ugedagen"
>
> Har du et "bud" på problemet ?
Ja, så taler vi forbi hinanden.
Der er 2 stykker validering - den ene tjekker for eks. 29 februar 2009, 31.
april osv, og er denne 'klods':
.....
if ( mydate.getFullYear() != aaretvalgt || mydate.getMonth()+1 != manedvalgt
|| mydate.getDate() != datovalgt ) {
alert ('Datoen passer ikke til ugedagen' + mydate.toDateString() );
dato.focus(); return false;
}
.....
Hvis datoen er gyldig, og det er 2. januar 2009, tjekkes om også ugedagen
passer med datoen i denne 'klods':
.....
if ( ugedagvalgt != ugedag ) {
alert ('Ugedag passer ikke til datoen');
dag.focus();
return false;
}
.....
Hvis du vil fave fokus på datoen, hvis dato+ugedag ikke passer, skal du
rette dag.focus(); til dato.focus(); i nummer 2 'klods'.
Derudover synes jeg du skal ændre fejlmeldingen:
alert ('Datoen passer ikke til ugedagen' + mydate.toDateString() );
til noget mere sigende.
mydate.toDateString() var egentlig en reminisens fra noget 'debugging', og
der er tale om, at man har defineret en direkte forkert dato, som sagt
eksempelvis den 29. februar 2009.
Det er din side, og dine brugere, men eksempelvis:
alert ('Denne dato findes ikke i kalenderen');
Nu er det jp en ret alvorlig ting at bestille morgenmusik ( har selv sørget
for forældrenes sølv- og guld-bryllup), men ellers kunne man lave en mere
humoristisk melding:
alert ('Sig mig lege engang - hvilken kalender bruger du?\r\nHer bruger
vi den almindelige danske kalender');
Bemær her \r\n, som laver linieskift i advarselsboksen.
--
Med venlig hilsen
Stig Johansen
| |
Peter (06-02-2009)
| Kommentar Fra : Peter |
Dato : 06-02-09 19:27 |
|
Hej Stig igen!
Jeg har nok lidt svært m.h.t. at forstå script-sprog.
Har jeg forstået det rigtigt at det er "enten eller" og ikke "både og" i
problemet vedr. dato-rullemenuerne ?
Det jeg allerhelst kunne tænke mig er, når man "sammensætter" datoen med de
4 rullemenuer og man laver en forkert kombination af alle parametre, at den
"går retur" og markerer enten "Ugedag" (1. rullemenu) eller "Dato" (2.
rullemenu) alt efter hvad der er relevant.
F.eks. Onsdag 1. januar 2009 = Retur + markering: "Ugedag" (1. rullemenu)
Hvis kombinationen er: Torsdag 2. januar 2009 = Retur + markering: "Dato"
(2. rullemenu).
Den "rigtige" kombination er: Torsdag 1. januar 2009.
Er det muligt med "både og" ?
hilsen
Peter
PS: Jeg får lige en tanke. Hvor i landet stammer du fra? Jeg kendte en
"jævnaldrende" Stig i Odense i 60'erne. Er det dig ?
| |
Stig Johansen (06-02-2009)
| Kommentar Fra : Stig Johansen |
Dato : 06-02-09 20:26 |
|
Peter wrote:
> Hej Stig igen!
>
> Jeg har nok lidt svært m.h.t. at forstå script-sprog.
Det er heller ikke nemt.
> Har jeg forstået det rigtigt at det er "enten eller" og ikke "både og" i
> problemet vedr. dato-rullemenuerne ?
Man skal tænke lidt i regler, og 'matematik', da en computer ikke er
tænkende qpå samme måde som mennesker.
> Det jeg allerhelst kunne tænke mig er, når man "sammensætter" datoen med
> de 4 rullemenuer og man laver en forkert kombination af alle parametre, at
> den "går retur" og markerer enten "Ugedag" (1. rullemenu) eller "Dato" (2.
> rullemenu) alt efter hvad der er relevant.
> F.eks. Onsdag 1. januar 2009 = Retur + markering: "Ugedag" (1. rullemenu)
> Hvis kombinationen er: Torsdag 2. januar 2009 = Retur + markering: "Dato"
> (2. rullemenu).
> Den "rigtige" kombination er: Torsdag 1. januar 2009.
>
> Er det muligt med "både og" ?
Det er hér, det er lidt subjektivt hvad der er 'rigtigt'.
Datovalideringen tager udgangspunkt i disse 2 spørgsmål:
Er datoen (dag,måned,år) korrekt ?
Hvis den ikke er det, gives en besked om fejl.
Det er f.eks. 29 februar 2009 osv.
Hvis datoen er korrekt, tjekkes op mod ugedagen.
Og hvis ugedagen ikke passer med datoen, gives en fejl.
I dit eksempel vil jeg påstå, at Fredag 2. januar er korrekt.
Vi har ingen mulighed for at vide om det er ugedagen, eller datoen der er
forkert.
Det eneste vi kan afgøre er, at de to ting ikke passer sammen.
> PS: Jeg får lige en tanke. Hvor i landet stammer du fra? Jeg kendte en
> "jævnaldrende" Stig i Odense i 60'erne. Er det dig ?
Njah - så gammel er jeg heller ikke - 52 og fra 2730 området.
--
Med venlig hilsen
Stig Johansen
| |
Peter (06-02-2009)
| Kommentar Fra : Peter |
Dato : 06-02-09 21:50 |
|
Hej Stig!
1000 tak for din store hjælpsomhed og tålmodighed. Uden den var det aldrig
blevet færdigt!
hilsen
Peter
| |
Peter (12-02-2009)
| Kommentar Fra : Peter |
Dato : 12-02-09 17:49 |
|
Hej Stig!
Nu er den gal igen !!! Håber på "en gang hjælp" igen ?
Jeg manglede at lave validering på 2 tekstfelter: "E-mail" + "Telefon".
Jeg har "fundet" begge scripts på nettet og sat dem ind i denne
eksisterende form, men den "kører" forbi.
Vil du være venlig og kigge på problem(et/erne) ?
Linket er dette her: www.morgenmusikken.dk/formular-ny.htm
hilsen
Peter
| |
Stig Johansen (13-02-2009)
| Kommentar Fra : Stig Johansen |
Dato : 13-02-09 01:36 |
|
Peter wrote:
> Hej Stig!
>
> Nu er den gal igen !!! Håber på "en gang hjælp" igen ?
>
> Jeg manglede at lave validering på 2 tekstfelter: "E-mail" + "Telefon".
>
> Jeg har "fundet" begge scripts på nettet og sat dem ind i denne
> eksisterende form, men den "kører" forbi.
Ja, for du har lagt dem som 2 selvstændige funktioner uden for den funktion,
der kaldes fra formen.
Du skal have dem flyttet ind i funktionen.
Funktionen slutter med:
.....
if (hvor_fandt_du_hjemmesiden.selectedIndex < 1 )
{
alert("Hvordan fandt på hjemmesiden ?");
hvor_fandt_du_hjemmesiden.focus();
return (false);
}
<<<-- Her skal du flytte dem ind
return (true); <<< -- her afsluttes funktionen med ok, hvis der ikke er
valideringsfejl.
} <<<--- dette er afslutningen på valideringsfunktionen.
.....
Så denne del:
placering=0;
tekst=(document.forms[0].E_mail.value).toLowerCase();
placering=tekst.indexOf("@");
if(tekst ==""){
alert ("Der skal stå en e-post adresse i tekstfeltet");
error = 1;
}
else{
tegn=tekst.indexOf(" ");
if(tegn!=-1){
alert ("Der må ikke være mellemrum i adressen");
error = 1;
}
else{
if (tekst.indexOf("æ")!=-1 || tekst.indexOf("ø")!=-1 ||
tekst.indexOf("å")!=-1 ||
tekst.indexOf("Æ")!=-1 || tekst.indexOf("Ø")!=-1 ||
tekst.indexOf("Å")!=-1 ||
tekst.indexOf(";")!=-1 || tekst.indexOf(",")!=-1){
alert ("Der er ulovlige tegn i adressen. Må ikke indeholde: æ ø å Æ
Ø Å , ;");
error = 1;
}
else{
if (placering<1 || tekst.length<=(placering+1)){
alert ("E-post adressen er forkert - forsøg igen");
error = 1;
}
}
}
Skal du flytte op hvor der hvor jeg har markeret.
Endvidere skal du skrive return false; i stedet for error=1;
Denne del skal du også flytte op:
.....
var s = f.Telefon.value.replace(" ", "");
if (!/^[0-9\/-]{7,20}$/.test(s)) {
alert("Telefonnummeret har ikke korrekt format");
f.Telefon.focus();
return false;
}
.....
Det der bliver til overs efter flytningen sletter du bare.
--
Med venlig hilsen
Stig Johansen
| |
Stig Johansen (13-02-2009)
| Kommentar Fra : Stig Johansen |
Dato : 13-02-09 01:38 |
|
Stig Johansen wrote:
> var s = f.Telefon.value.replace(" ", "");
> if (!/^[0-9\/-]{7,20}$/.test(s)) {
> alert("Telefonnummeret har ikke korrekt format");
> f.Telefon.focus();
Du skal nok bruge theForm. i stedet for f.
--
Med venlig hilsen
Stig Johansen
| |
Peter (13-02-2009)
| Kommentar Fra : Peter |
Dato : 13-02-09 14:27 |
|
Hej igen!
Det fungerer rigtig fint. Tak!
1. nye- spørgsmål: Jeg opdagede at e-mail scriptet ikke kontrollerede om man
havde "glemt" landekoden f.eks. ".dk"/".com"
Jeg fandt "noget om det" i hæftet "JavaScript 1.5" (IDG Forlag) af Jesper
Nyhus side 33 + 34 (øverst). Jeg har forsøgt at sætte den ind i det
foregående script, men nu validerer hele formularsiden slet ikke mere.
Scriptet ser således ud:
else{
TestTegn=".dk";
b=adresse.length;
Test=tekst.indexOf(TestTegn);
Resultat = b-Test;
if (Resultat == 3)
alert ("Du mangler slutningen på e-mail adressen!");
theForm.E_mail.focus();
return (false);
}
Jesper Nyhus skriver i hæftet: I virkeligheden bør en sådan test undersøge
om der står noget foran @-tegnet og herefter undersøge om punktummet står på
den tredie- eller fjerdesidste plads (afhængig af om landekoden er på to
eller tre tegn).
Skal: if (Resultat == 3) evt. ændres til: if (Resultat == 4) hvis det skal
tillade/acceptere ".com" ?
Det 2. nye-spørgsmål: Jeg har ønske om at "forenkle" det oprindelige scrips
således, at feltet ikke skal "kræve" at man skriver i feltet, men kun
validere hvis der kommer oplysninger i feltet "E_mail".
Jeg har "pillet" dette her ud af koden, men så validerer den overhovedet
ikke formularsiden mere. Har jeg slettet for meget? (Jeg har sat den ind på
siden efter "det mislykkede forsøg".
placering=0;
tekst=(document.forms[0].E_mail.value).toLowerCase();
placering=tekst.indexOf("@");
if(tekst ==""){
alert ("Der skal stå en e-post adresse i tekstfeltet!");
theForm.E_mail.focus();
return (false);
}
else{
hilsen og på forhånd: Tak!
Peter
| |
Peter (13-02-2009)
| Kommentar Fra : Peter |
Dato : 13-02-09 18:36 |
|
Hej Stig!
Kan dette anvendte telefon-script ændres til at tillade 2 telefonnumre ?
var s = theForm.Telefon.value.replace(" ", "");
if (!/^[0-9\/-]{8,20}$/.test(s)) {
alert("Telefonnummeret har ikke korrekt format!");
theForm.Telefon.focus();
return false;
}
Jeg "troede" at {8,20}betød at man kunne skrive fra 8 til 20 tal ind i
feltet = 2 x 8 tegn plus "lidt extra" = "og , +, / "
hilsen
Peter
| |
Peter (13-02-2009)
| Kommentar Fra : Peter |
Dato : 13-02-09 18:41 |
|
Hej igen!
Skal dette script "skrives" på en anden måde (fundet på nettet) for at passe
ind i dit "form-script" ?
function validering()
{
error = 0;
if(!((document.forms[0].Sange_1[0].checked)
|| (document.forms[0].Sange_2[1].checked)) && (error==0))
{
alert('Du skal vælge hvad du helst foretrækker!');
error = 1;
}
if(error == 0)
Sange.focus();
return (false);
}
Er "problemet" stadig: error = 0; error = 1; osv. ?
hilsen
Peter
| |
Stig Johansen (14-02-2009)
| Kommentar Fra : Stig Johansen |
Dato : 14-02-09 06:07 |
|
Peter wrote:
> Hej igen!
>
> Skal dette script "skrives" på en anden måde (fundet på nettet) for at
> passe ind i dit "form-script" ?
Ja, 'form-scriptet' virker ved at returnere enten true eller false afhængig
af om der er fejl. Samtidig bliver formen oferført som parameter, så i
stedet for document.forms[0] kan du bruge theForm.
Så du kan prøve dette her (inde i scriptet):
if(!((theForm.Sange_1[0].checked)
|| (theForm.Sange_2[1].checked)) )
{
alert('Du skal vælge hvad du helst foretrækker!');
Sange.focus();
return false;
}
> Er "problemet" stadig: error = 0; error = 1; osv. ?
Ja, for de ting du finder er bygget efter en anden (mere besværlig) metode.
Jeg vil lige nævne, at din side(r) tilsyneladende er utilgængelige p.t., så
jeg kan ikke tjekke om det er korrekt.
De andre ting du nævner med telefon nummer og email bliver du nok nødt til
at finde en anden til at hjælpe med.
Mit hovedmetier er mere mainframe og client/server systemer, og ikke
javascript. Her har man ikke brug for regulære udtryk, så jeg har ikke sat
mig ind i dem, og ønsker heller ikke at gøre det.
Telefon nummer f.eks. beøver ikke at være danske(i de systemer jeg arbejder
med), så reelt er der ikke (brugbare) metoder til en 100% validering.
Email er heller ikke begrænset til .dk eller .com eller max 3 chars.
..info f.eks. er 4 karakterer.
Hvis man skal validere en email adresse, så kan man lave en MX lookup på
serveren, og tjekke at der står 'noget' før @.
Det er det eneste brugbare, for derved kontrollerer man at der er en fysisk
mailserver i den anden ende(eller i det mindste at der er oprettet en MX
record).
Hvordan 'noget' for @ ser ud er umuligt at validere, blot at det er der.
Men det er serverside programmering, og muligvis lidt langhåret.
--
Med venlig hilsen
Stig Johansen
| |
Peter (16-02-2009)
| Kommentar Fra : Peter |
Dato : 16-02-09 16:43 |
|
Hej Stig igen!
Vil du hjælpe mig med at rette dette script til, således at det passe til
dit "theForm"-script.
Jeg har efter bedste "evne" prøvet at imitere noget fra de andre scripts du
har "fremstillet". Har jeg glemt noget?
På forhånd. Tak!
hilsen
Peter
Skrivefeltet hedder: E_mail
var testresults
function E_mail(){
var str=document.validation.E_mail.value
var
filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
if (theForm.E_mail.test(str))
E_mail=true
else{
alert("Ugyldig email - Prøv igen!")
theForm.E_mail.focus();
return false;
}
return (E_mail)
}
function checkbae(){
if (document.layers||document.getElementById||document.all)
theForm.E_mail.focus();
return false;
else
return true
}
</script>
| |
Stig Johansen (17-02-2009)
| Kommentar Fra : Stig Johansen |
Dato : 17-02-09 02:16 |
|
Peter wrote:
> filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6
(?:\.[a-z]{2})?)$/i
De der udtryk må du selv tilpasse, men jeg fandt en stump her:
< http://javascript.internet.com/forms/email-validation---basic.html>
der (næsten) passer ind i funktionen.
Denne stump:
.....
if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\
\w{2,3})+$/.test(myForm.emailAddr.value)){
return (true)
}
alert("Invalid E-mail Address! Please re-enter.")
return (false)
.....
Bygger vi om til:
.....
if !(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\
\w{2,3})+$/.test(theForm.E_mail.value)){
alert("Invalid E-mail Address! Please re-enter.");
theForm.E_mail.focus();
return (false);
}
.....
Hvis du lægger den ind, og evt. bruger din egen expression i stedet, burde
det virke.
--
Med venlig hilsen
Stig Johansen
| |
Peter (17-02-2009)
| Kommentar Fra : Peter |
Dato : 17-02-09 08:41 |
|
Hej igen!
Nu validerer formularsiden slet ikke!
Vi du kigge på den www.morgenmusikken.dk/formular-ny.htm
Scriptet er på linie 160-169
På forhånd tak!
hilsen Peter
> Bygger vi om til:
> ....
> if !(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\
> \w{2,3})+$/.test(theForm.E_mail.value)){
> alert("Invalid E-mail Address! Please re-enter.");
> theForm.E_mail.focus();
> return (false);
> }
> ....
> Hvis du lægger den ind, og evt. bruger din egen expression i stedet, burde
> det virke.
>
> --
> Med venlig hilsen
> Stig Johansen
| |
Stig Johansen (18-02-2009)
| Kommentar Fra : Stig Johansen |
Dato : 18-02-09 06:04 |
|
"Peter" <petit@mobil.dk> wrote in message
news:499a6a0b$0$56769$edfadb0f@dtext02.news.tele.dk...
> Hej igen!
>
> Nu validerer formularsiden slet ikke!
>
> Vi du kigge på den www.morgenmusikken.dk/formular-ny.htm
Ja, det er lige det med at være vågen når man skriver uden at teste.
Udråbstegnet, som betyder NOT skal være inde i en parantes.
Jeg vil foreslå, af hensyn til læsbarheden at sætte ekstra paranteser så
linie 161
if !(/^\ ..osv
starter med if (!(/^\
og slutter med:
E_mail.value)))NB Du må meget gerne oprette en ny tråd, da denne her er ved
at forsvinde i min historik.
--
Med venlig hilsen/Best regards
Stig Johansen
| |
|
|