• 18.04.2024, 05:23
  • Registrieren
  • Anmelden
  • Sie sind nicht angemeldet.

 

Lieber Besucher, herzlich willkommen bei: Aqua Computer Forum. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

html / javascript Frage

Montag, 28. März 2005, 20:50

Hallo,
ich programmiere grade was und brauche nen tipp wie ich folgendes machen kann:
habe 3 datumseingabefelder (eins für tag mit 2 stellen, eins für monat 2 stellen und eins fürs jahr mit 4 stellen).
nun brauch ich ein javascipt, das den cursor nach eingabe der 2. ziffer vom 1. in das 2. feld "schiebt" ( und vom 2. ins 3.), damit man nicht selber reinklicken oder TAB drücken muss.

kennt jmd sowas?

Re: html / javascript Frage

Montag, 28. März 2005, 21:59

du machst nen onchange-handler auf das erste feld und lässt eine methode überprüfen, ob die zweite ziffer eingegeben ist (z.b. ob der string zwei zweichen lang ist) und dementsprechnd rufst du vom nächsten feld .focus() auf.

Re: html / javascript Frage

Montag, 28. März 2005, 22:08

vielen dank.

function checkValueLength(t, nextname) {
if (t.value.length =2) { t.form.nextname.focus(); }
}

<input name="vd_day" type="text" onChange="checkValueLength(this, 'vd_month')" value="" size="2" maxlength="2">


habs nun so, funktioniert aber leider noch nicht.

Re: html / javascript Frage

Montag, 28. März 2005, 22:42

der vergleichsoperator müsste == und nicht = (zuweisung) sein.

um zudem xhtml-kompatibel zu bleiben fehlt am ende des tags ein slash und das onchange-attribut wird komplett lowercase geschrieben.

zudem übergibst du nur nen string, das klappt wohl nicht. entweder du übergibst das objekt oder lässt den zweiten parameter weg und rufst es direkt auf. das objekt solltest du über this.form.vd_month oder forms[0].vd_month oder meinformularname.vd_month erreichen.

Re: html / javascript Frage

Montag, 28. März 2005, 23:03

function checkValueLength(t, nextname) {
if (t.value.length==2) { this.form.getElementByName(nextname).focus(); }
}

ich will halt die funktion für unterschiedliche namen verwenden, deshalb kann ich nich vd_month fest codieren...

aber warum geht das so nicht?

Re: html / javascript Frage

Montag, 28. März 2005, 23:15

bin zu faul es auszuprobieren, also mal ein paar fragen:

- wird die funktion aufgerufen?
- wird der if-block ausgeführt?

probier mal:
- document.getElementByName() statt this.form...
- übergebe this.value anstatt this an die funktion
- ; hinter dem funktionsaufruf in onchange
Gott hat die Welt ja nur in sieben Tagen erschaffen können, weil es keine installierte Basis gab.

Re: html / javascript Frage

Montag, 28. März 2005, 23:25

das onChange event scheint erst aufzutreten wenn ich das textfield verlasse und nicht wenn man da was eingibt! komisch...

also wenn ich das feld verlasse wird meine function ausgeführt und auch der code im if-statement.

Re: html / javascript Frage

Montag, 28. März 2005, 23:32

klar, eigentlich auch logisch.

also nimm mal onkeydown
Gott hat die Welt ja nur in sieben Tagen erschaffen können, weil es keine installierte Basis gab.

Re: html / javascript Frage

Montag, 28. März 2005, 23:49

danke.
mit onkeyup gehts :)

function checkValueLength(t, nextname) {
if (t.value.length==2) { document.getElementsByName(nextname)[0].focus(); }
}

<input name="vd_day" type="text" onkeyup="checkValueLength(this, 'vd_month');" ...