jk296
Mitglied
Registriert: 28.02.2007
Beiträge: 22
|
|
Hallo,
habe folgende Anweisung:
var s = document.Formular.Datum.value; var erg = s.match(/[0-9]{1,2}.[0-9]{1,2}.[0-9]{4}/gi); if(!erg) { alert("Bitte das Datum korrekt eingeben!"); document.Formular.Datum.focus(); return false; }
Jetzt soll geprüft werden, ob das eingegebene Datum nach einem festgelegten Datum, z. B. 01.01.2000, liegt. Wenn ja, dann Fehlermeldung.
Danke schon mal für eure Hilfen.
Gruß.
PS: Wie muss ich den Code ändern, damit z. B. das Datum 34.15.7000 als fehlerhaft gilt?
|
|
| 04.03.2008 16:01:36 |
|
HTMELL
Administrator
Registriert: 11.05.2006
Beiträge: 544
|
|
|
| 04.03.2008 17:43:52 |
|
jk296
Mitglied
Registriert: 28.02.2007
Beiträge: 22
|
|
HTMELL schrieb:
Beschäftige Dich mal mit http://www.validome.org/doc/HTML_ge/javascript/objekte/date.htm. Mit getTime() oder parse() 2 Zeitpunkte definieren und vergleichen. |
Link geht nicht. Außerdem habe ich kaum Ahnung von der JS-Syntax. Wie definierte und vergleiche ich die Zeitpunkte in Verbindung zum Formular?
HTMELL schrieb:
Siehe http://aktuell.de.selfhtml.org/artikel/javascript/datumueberpruefen/index.htm |
Cool, danke. Allerdings sehe ich darin irgendwie nicht die Verbindung zum Formular. Beim Ausprobieren kam nur ne Meldung mit true, dann noch irgendne Meldung (es soll ja nichts weiter als EINE Fehlermeldung kommen) und dann auf einmal schon ne Meldung in Bezug auf das nächste Feld im Formular (ohne dass – zwecks Korrektur – in das Datumsfeld zurückgesprungen wurde). Im Übrigen soll das Format ja tt.mm.jjjj – also so und nicht anders (nicht t.m.jjjj oder tt.mm.jj o. Ä.) – sein. Im Artikel ist es ja, glaube ich, ohne die Nullen. Jetzt weiß ich natürlich nicht, wie ich GERADE dieses Format erziele.
Beitrag geändert von jk296 (04.03.2008 21:34:39)
|
|
| 04.03.2008 21:22:59 |
|
dkdenz
Administrator
Ort: Lübeck
Registriert: 25.04.2005
Beiträge: 605
|
|
jk296 schrieb:
Link geht nicht. Außerdem habe ich kaum Ahnung von der JS-Syntax. Wie definierte und vergleiche ich die Zeitpunkte in Verbindung zum Formular?
|
Hi
Link geht!
Irgendwie musst Du Dich schon mal entscheiden. Du willst ein JavaScript einsetzen, welches Du nicht schreiben kannst, aber mit den Links beschäftigen willst Du Dich auch nicht. Soll Dir das jetzt auf dem silbernen Tablett serviert werden? Zudem hast Du in einem anderen Forum auch schon konkrete Tipps bekommen.
Viel Spaß noch...
_______________________________________ Mozilla/5.0 (X11; U; Linux i686; de; rv:1.8.0.14eol) Gecko/20080418 Ubuntu/dapper-security Firefox/1.5.0.12eol
|
|
| 04.03.2008 23:13:46 |
| http://dkmd.de | http://dkdenz.de |
Zitieren |
|
jk296
Mitglied
Registriert: 28.02.2007
Beiträge: 22
|
|
dkdenz schrieb:
Link geht! |
Hast Recht. Vergessen, nach Copy/Paste den Punkt am Ende wegzunehmen.
dkdenz schrieb:
aber mit den Links beschäftigen willst Du Dich auch nicht. |
Nicht WOLLEN ist gut. Will immer gern mein Wissen erweitern, nur leider KANN ich das zurzeit nicht, jedenfalls nicht auf lange Sicht. Sonst natürlich würde ich mir JS von Grund auf erarbeiten (vor allem Grundlagen fehlen mir), keine Sorge. Zwar habe ich gerade frei, aber das nutze ich natürlich wieder zum Arbeiten (insbesondere an meinem Web-Projekt) und Zeit ist wie immer knapp.
dkdenz schrieb:
Soll Dir das jetzt auf dem silbernen Tablett serviert werden? |
Um ehrlich zu sein: ja ... d. h. für diesen Fall! (Bitte keine Grundsatz-Diskussion jetzt ... muss ich nicht haben!)
dkdenz schrieb:
Zudem hast Du in einem anderen Forum auch schon konkrete Tipps bekommen. |
So weit, so gut, aber eben „nur“ Links oder die Objekte, die wichtig sind, was mir nicht wirklich hilft.
|
|
| 05.03.2008 02:23:46 |
|
HTMELL
Administrator
Registriert: 11.05.2006
Beiträge: 544
|
|
Hi,
Code:
var s = document.Formular.Datum.value;
var erg = s.match(/[0-9]{1,2}.[0-9]{1,2}.[0-9]{4}/gi);
if(!erg || !gueltigesDatum(s)) {
alert("Bitte das Datum korrekt eingeben!");
document.Formular.Datum.focus();
return false;
} |
Sollte funktionieren. Du mußt natürlich noch die function von SELFHTML einfügen.
_______________________________________ mfg Thomas Mell
www.validome.org
|
|
| 05.03.2008 12:03:17 |
|
jk296
Mitglied
Registriert: 28.02.2007
Beiträge: 22
|
|
Also, irgendwie funktioniert das SELFHTML-Script nicht (jedenfalls nicht so, wie ich es mir vorstelle).
Das Datum soll nur dann korrekt sein, wenn
a) das Format tt.mm.jjjj, und zwar NICHT t.m.jjjj, tt.mm.jj o. Ä., ist (bei t.m.jjjj kommt keine Fehlermeldung!, aber bei tt.mm.jj)
b) fehlerfrei ist (nicht etwa 34.15.7000) und
c) NICHT NACH (= vor oder am gleichen) Datum, und zwar 01.01.2000, liegt!
Wie ist die function gueltigesDatum zu ändern? Übrigens, steht die Anweisung var erg = s.match(/[0-9]{1,2}.[0-9]{1,2}.[0-9]{4}/gi); nicht schon in der function?
|
|
| 07.03.2008 22:34:47 |
|
jk296
Mitglied
Registriert: 28.02.2007
Beiträge: 22
|
|
Auch das kriege ich noch immer nicht hin. (Werde noch wahnsinning!) Bitte noch mal um Hilfe.
|
|
| 08.03.2008 23:54:44 |
|
HTMELL
Administrator
Registriert: 11.05.2006
Beiträge: 544
|
|
Hi, nimm das da ;-)
Code:
function gueltigesDatum(datum) {
if(!datum.match(/[0-9]{2}.[0-9]{2}.[0-9]{4}/)) return false;
datum = datum.toString();
datum = datum.split(".");
datum[0] = parseInt(datum[0], 10);
datum[1] = parseInt(datum[1], 10)-1;
var kontrolldatum = new Date(datum[2], datum[1], datum[0]);
if(kontrolldatum.getDate() == datum[0] && kontrolldatum.getMonth() == datum[1] && kontrolldatum.getFullYear() == datum[2]) {
var zt = Date.UTC(2000, 0, 1);
var jz = Date.UTC(datum[2], datum[1], datum[0]);
return jz <= zt;
}
return false;
} |
_______________________________________ mfg Thomas Mell
www.validome.org
|
|
| 09.03.2008 01:52:00 |
|
jk296
Mitglied
Registriert: 28.02.2007
Beiträge: 22
|
|
|
| 09.03.2008 03:59:45 |
|
Wechsel zu
Die letzten Beiträge aus diesen Forum
|
|