purzelbaum
unsere besten emails
Coder Board Community

 
Boardmenü
Forum
Portal

Registrieren
Suche
Statistik
Mitglieder
Team
Kalender
Sponsoren
Partner

F.A.Q

Lexikon
Amazon Shop
Unterforen Navigation
Hardware
Software
Betriebssysteme
Foren & CMS
EDV Sicherheit
Telekommunikation
Tutorials & FAQ's
Downloads
Boardsuche
Board durchsuchen:

Wer ist Online ?
Zur Zeit im Forum unterwegs:
- 0 Mitglieder
- davon 0 unsichtbar
- 13 Besucher
- 4 Bot(s)
- 17 Benutzer gesamt


Wer ist wo online?
Wer war Online ?
Heute waren 0 Mitglieder im Forum unterwegs.
Linktip's
   Eigene Projekte:
auto-board.info
film-freunde.info
flirt-freunde.info
linkhunter.info
tier-freunde.info
spass-forum.info
buch-freunde.info
mystic-freunde.de
heimwerker-freunde.de

   Befreundete Projekte:
holyhell.de
emsfriends.de

Coder Board Community » Coding » Java Script » Brauche Hilfe bei einer Funktion zum automatischen Focussieren von Formularfeldern. » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen Brauche Hilfe bei einer Funktion zum automatischen Focussieren von Formularfeldern.
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Prometheus Prometheus ist männlich
Administrator


images/avatars/avatar-9.gif

Dabei seit: 09.05.2003
Beiträge: 2.950

Brauche Hilfe bei einer Funktion zum automatischen Focussieren von Formularfeldern. Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Ich habe ein Formular welches die Eingabe mehrerer Zahlen ermöglicht. Das heißt es gibt z.B. 5 Felder in welche eine Zahl eingegeben wird. Im Moment mache ich in jedem Feld nach der Eingabe ein submit um die Felder zu summieren und das Ergebnis in einer Totalzeile zu haben. Klar könnte ich auch im Browser beim User rechnen aber da bestimmte errechnete Werte auch in eine Datenbank geschrieben werden und ich unter allem Umständen verhindern möchte, dass ein User irgendwas manipuliert lasse ich lieber den Server rechnen. Klar könnte ich das mit Ajax machen um zum einen nur die nötigen Elemente zu laden und zum anderen auch das lästige "flackern" beim Neuladen des Formulars zu verhindern aber im Moment geht es mir erst mal um Funktion und nicht um Schönheit.

Lange Rede kurzer Sinn, wenn ich in das erste Feld eine Zahl eingegeben habe und mit Tab zum nächsten Feld springen möchte läd das Formular neu und es ist momentan gar kein Feld focussiert. Ich brauche also irgendwas was bei submit festhält in welchem Feld ich mich grade befunden habe und dann den Focus auf das nächst mögliche Eingabefeld legt.

Erschwerend hinzu kommt das ich einen Kalender nutze um ein Datum auszuwählen. Gebe ich das Datum per Hand ein und drücke Tab lande ich im nächsten Feld aber klicke ich das Datum in dem Kalender an liegt der Focus in dem Kalender und ich kann Tab drücken bis der Arzt kommt ich komme einfach nicht ins nächste Feld.

Ich kann ja bei onLoad im Body automatisch ein bestimmtes Feld focussieren lassen aber geht es auch das ich jedem Feld irgendwie eine Focusreihenfolge zuweise? Oder eine JS Funktion in der ich sage nach FeldID 3 kommt ID 5 und nicht 4 oder irgendwas?

Ich hätte bei JS echt mal besser aufpassen sollen damals großes Grinsen

__________________
mfg
Prometheus

Projektoren

Grafikkarten

Fertig-PC´s

TFT´s

Notebooks
Ich gebe keinen Support per PN, Email oder sonstiges!
Alle Fragen können offen hier im Forum behandelt werden.

13.10.2008 19:57 Prometheus ist offline Homepage von Prometheus Beiträge von Prometheus suchen Nehmen Sie Prometheus in Ihre Freundesliste auf
Ebay
Zum Anfang der Seite springen

http://www.itratos.de
Prometheus Prometheus ist männlich
Administrator


images/avatars/avatar-9.gif

Dabei seit: 09.05.2003
Beiträge: 2.950

Themenstarter Thema begonnen von Prometheus
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Ich hab mir das alles noch mal durch den Kopf gehen lassen und die Möglichkeit die mir im Moment einfällt wäre jedem Feld eine eindeutige ID zu geben und dann beim Laden der Seite eine Funktion aufzurufen die prüft welcher Inhalt in welchem Feld steht. Das heißt bei 5 Feldern ist normal der Wert 0 eingetragen und soll vom User bearbeitet werden. Beim Laden wird geprüft ob im Feld ID 1 ein anderer Wert wie 0 steht und wenn ja wird zum nächsten Feld gesprungen und immer so weiter bis eben alle Felder durch sind. Ich denke ich muss den Aufruf dann in onLoad im Body Tag packen nur ich hab noch keinen Ansatz für die Funktion.

__________________
mfg
Prometheus

Projektoren

Grafikkarten

Fertig-PC´s

TFT´s

Notebooks
Ich gebe keinen Support per PN, Email oder sonstiges!
Alle Fragen können offen hier im Forum behandelt werden.

17.10.2008 11:03 Prometheus ist offline Homepage von Prometheus Beiträge von Prometheus suchen Nehmen Sie Prometheus in Ihre Freundesliste auf
bauser bauser ist männlich
Elite Member


images/avatars/avatar-48.gif

Dabei seit: 15.03.2004
Beiträge: 370

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
< HTML>
<head>
<script type="text/javascript" language="javascript">
function focusTheNextOne(){
  var iFirstOneValue = parseInt(document.getElementById('firstone').value);
  if(iFirstOneValue != 0){
    var iSecondOneValue = parseInt(document.getElementById('secondone').value);
    if(iSecondOneValue != 0){
      var iThirdOneValue = parseInt(document.getElementById('thirdone').value);
      if(iThirdOneValue != 0){
        // hier muss ich nichts mehr machen, da alle felder ausgefüllt sind
      } else document.getElementById('thirddone').focus();
    } else document.getElementById('secondone').focus();
  } else document.getElementById('firstone').focus();
}
</script>
</head>
<body onLoad="javascript:focusTheNextOne();">
<form action="disesedatei.php" method="post">
<input type="text" name="firstinput" ID="firstone" value="<?php if(isset($_POST["firstinput"]) AND !empty($_POST["firstinput"])) echo $_POST["firstinput"]; else echo "0"; ?>">
<input type="text" name="secondinput" ID="secondone" value="<?php if(isset($_POST["secondinput"]) AND !empty($_POST["secondinput"])) echo $_POST["secondinput"]; else echo "0"; ?>">
<input type="text" name="thirdinput" ID="thirdone" value="<?php if(isset($_POST["thirdinput"]) AND !empty($_POST["thirdinput"])) echo $_POST["thirdinput"]; else echo "0"; ?>">
<input type="submit" value="Berechnen">
</form>
</body>
</ HTML>


ist im prinzip recht einfach. erst wird mit php nachgesehn ob die variablen (in diesem falle im post-verfahren übergeben) gesetzt und nicht leer sind. dann wird falls gesetzt und nicht leer, das entsprechende feld mit value auf den übergeben wert gesetzt, oder halt auf 0 falls die variable nicht gesetzt oder leer ist. dann wird sobald der browser die seite geladen hat die javascript funktion focusTheNextOne ausgeführt. diese überprüft die felder auf ihren inhalt. ist der wert des ersten feldes != 0, wird das zweite überprüft, ansonsten wird das erste feld fokussiert. ist der wert des zweiten != 0 wird das dritte überprüft oder falls er nicht != 0 ist das zweite fokussiert. was du machst wenn das letzte feld auch != 0 ist weiß ich nicht. darum hab ich an dieser stelle einen kommentar eingefügt.

ist nicht die allerschönste variante, du könntest den feldern eine id geben wie ID="Feld1" und ID="Feld2" und könntest dann eine schleife machen, die so lange alle felder mit der id "Feld"+iCounterValue überprüft bis eines den wert 0 hat und dieses dann fokussiert, aber ich denk das kriegst du schon hin.

an der ein oder andern stelle kann eine klammer oder ein semikolon fehlen, hab das jetzt auf die schnelle hier im browser getippt. aber ich denke auch das fidest du raus falls es der fall ist Augenzwinkern

__________________
I'm Tony Menthanar! You fuck wit me, you fuckin' wit da best!
23.10.2008 11:40 bauser ist offline E-Mail an bauser senden Beiträge von bauser suchen Nehmen Sie bauser in Ihre Freundesliste auf Fügen Sie bauser in Ihre Kontaktliste ein
Der Betreiber und die Moderatoren vom www.coder-board.de distanzieren sich hiermit ausdrücklich von dem von bauser am 23.10.2008 um 11:40 verfassten Beitrag.
Sollte dieser Beitrag Ihre Rechte verletzen, bitten wir um Benachrichtigung unter Berücksichtigung der dort aufgeführten Möglichkeiten.
Affilimatch
Zum Anfang der Seite springen

http://www.itratos.de
Prometheus Prometheus ist männlich
Administrator


images/avatars/avatar-9.gif

Dabei seit: 09.05.2003
Beiträge: 2.950

Themenstarter Thema begonnen von Prometheus
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Das Formular um das es geht ist leider nicht so statisch als das ich die Methode anwenden könnte. Es gibt 1 bis n mögliche Eingabefelder in Abhängigkeit von einer Tabelle in welcher bestimmte Dinge vordefiniert sind. Heißt wenn eine neue Definition dazu kommt dann gibt es eine neue Zeile mit 2 Eingabefeldern und 4 Ausgabefeldern. Aber ich hab da schon eine Idee wie ich das hin bekomme sobald es funktioniert poste ich mal wie ich es gelöst habe.

__________________
mfg
Prometheus

Projektoren

Grafikkarten

Fertig-PC´s

TFT´s

Notebooks
Ich gebe keinen Support per PN, Email oder sonstiges!
Alle Fragen können offen hier im Forum behandelt werden.

24.10.2008 21:13 Prometheus ist offline Homepage von Prometheus Beiträge von Prometheus suchen Nehmen Sie Prometheus in Ihre Freundesliste auf
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Coder Board Community » Coding » Java Script » Brauche Hilfe bei einer Funktion zum automatischen Focussieren von Formularfeldern.

Views heute: 1.442 | Views gestern: 7.372 | Views gesamt: 15.681.724



Impressum

Board Blocks: 46.035 | Spy-/Malware: 1.245.611.449.400.000.000.000.000.000 | Bad Bot: 0 | Flooder: 21.847
CT Security System Pre 6.0.1: © 2006-2007 Frank John

Forensoftware: Burning Board 2.3.6, entwickelt von WoltLab GmbH

Style & Graphics © 2004-2005 by Technomausi