einen Fokus auf ein eingabefeld setzten!
maik
- javascript
Hallo Freunde,
ich habe da ein kleines Problem, ich möchte auf ein Eingabefeld einen Fokus setzten damit mit den Eingaben direkt begonnen werden kann.
Zum bisherigen Script:
<script type="text/javascript" src="../java/prototype.js"></script>
<script type="text/javascript" src="../java/scriptaculous.js"></script>
<script type="text/javascript">
function herst_suche() {
// Inhalt des Eingabefeldes „suche_zahl“
var zahl = $F('suche_zahl');
// Inhalt des Eingabefeldes „hersteller“
var hersteller = $F('hersteller');
new Ajax.Updater( {success:'zeige_gesammtfeld'}, 'sucherpc.php?aktion=hersteller&zahl=&hersteller='+hersteller);
with (document.formular.suche_zahl)
focus();
}
function fokusieren() {
with (document.formular.suche_zahl)
focus();
}
function suche() {
// Inhalt des Eingabefeldes „suche_zahl“
var zahl = $F('suche_zahl');
// Inhalt des Eingabefeldes „hersteller“
var hersteller = $F('hersteller');
new Ajax.Updater( {success:'zeige_ergebnisfeld'}, 'sucherpc.php?aktion=anzeige&zahl='+zahl+'&hersteller='+hersteller);
with (document.formular.suche_zahl)
focus();
}
</script>
Die Ajax Klassen sind vernachlässigbar da es Funktioniert!
Ich habe drei Felder:
1. ein dropdown in dem Hersteller Ausgewählt werden können.
- nachdem diese Ausgewählt wurden, wird z.B. auch das Feld
suche_zahl onfocus gesetzt.
2. ein Eingabefeld in dem nach Druckern gesucht wird.
3. ein Anzeigefeld (select) in dem nach DB Zugriff die Drucker
angezeigt werden.
Punkt ist, da die DB abfrage einige Zeit dauert wird, sobald das Ergebnis komplett ist dieses Feld Aktiv! Das bringt mir ja nichts, da ich ständig das druckereingabfeld aktiv haben möchte!
Helft mir, auf Wunsch auch mehr Code!
lg
maik
hi,
Punkt ist, da die DB abfrage einige Zeit dauert wird, sobald das Ergebnis komplett ist dieses Feld Aktiv! Das bringt mir ja nichts, da ich ständig das druckereingabfeld aktiv haben möchte!
Dann verzichte darauf, den Fokus auf andere Felder zu setzen.
gruß,
wahsaga
hi,
Punkt ist, da die DB abfrage einige Zeit dauert wird, sobald das Ergebnis komplett ist dieses Feld Aktiv! Das bringt mir ja nichts, da ich ständig das druckereingabfeld aktiv haben möchte!
Dann verzichte darauf, den Fokus auf andere Felder zu setzen.
gruß,
wahsaga
ok, guter ansatz ...
wie kann ich denn grundsätzlich das fokusieren unterbinden?
Habe darüber leider noch nichts gefunden!
maik
hi,
wie kann ich denn grundsätzlich das fokusieren unterbinden?
Ich hatte dich so verstanden, dass du die Fokussierung selber auslöst, wenn du das Ergebnis deines AJAX-Requests auswertest.
gruß,
wahsaga
hi,
wie kann ich denn grundsätzlich das fokusieren unterbinden?
Ich hatte dich so verstanden, dass du die Fokussierung selber auslöst, wenn du das Ergebnis deines AJAX-Requests auswertest.
gruß,
wahsaga
Es läuft folgendermaßen:
als erstes suche ich einen Drucker per Dropdown aus...
bei erfolgter änderung (onchange) wird eine Div id=### mit einem script ersetzt (DB abfrage auszug mittels where hersteller = $'hersteller' anzeige in select feld.
darüber wird ein input type = text angezeigt in dem ich dann weitere eingaben (teilstring : je tastendruck wird eine neue suche mit dem kompletten teilstring gestartet where herst = '$herst' and drucker = '$drucker%'] )
Die erste Funktion bzw.: der erste Aufruf Funktioniert ohne Probleme!
Auswahl Hersteller, onfocus auf das Input feld, er beginnt die abfrage zu starten und jetzt das:
Das Problem ist folgendes: sobald es die Abfrage über die gesammt DB geschafft hat wird das selectfeld Aktiv, d.H. es bekommt einen focus() was ich ja nicht möchte, denn es soll ja das Inputfeld den focus gesetzt bekommen!
Ich habe es ja schon insoweit geschafft, das das script den focus nach dem select der drucker auf das inputfeld springt!
Aber es soll halt NACH erfolgter anzeige des DB inhalts auch wieder auf das Inputfeld springen!
Kann ich irgendeine Funktion aufrufen wenn eine abfrage durch ist?
Ich müßte mittels PHP eine Variable setzten können, die 1 hat wenn sie fertig ist! und das dann per ajax an das script schicken?
IDEE?
gruß
maik
Kann ich irgendeine Funktion aufrufen wenn eine abfrage durch ist?
Ich müßte mittels PHP eine Variable setzten können, die 1 hat wenn sie fertig ist! und das dann per ajax an das script schicken?
Ich kenn deine Framework nicht, aber:
new Ajax.Updater( {success:'zeige_gesammtfeld'}, 'sucherpc.php?aktion=hersteller&zahl=&hersteller='+hersteller);
... das Feld success sieht zumindest so us, als ob es deine Frage beantworten könnte.
Struppi.
Nö leider net, denn damit definiere ich den
<Div id = 'zeige_gesammtfeld'> bereich zum ersetzten!
Dacht ich auch am anfang aber nöööö :)
Nö leider net, denn damit definiere ich den
<Div id = 'zeige_gesammtfeld'> bereich zum ersetzten!
Dann musst du dir mal die Doku zum Framework anschauen wie die Eigenschaft heißt um an die von dir gesuchte Funktion ranzukommen, ich kann mir nicht vorstellen, dass es sowas nicht gibt. Ansonsten schmeiss das Ding weg.
Struppi.
ok, ich peil langsam worum es dirgeht ...
zur klarstellung: Das Framework hat NULL (in zahlen:) 0 Funktionen zum Fokusieren, oder sonstiges, ich bau es mir mit standart javascript selbst ein :)
Also die frage wie vorher, wie kann ich ein focus setzten NACHDEM alle Feldfunktionen abgearbeitet worden sind?
m.
ok, ich peil langsam worum es dirgeht ...
sieht nicht so aus.
zur klarstellung: Das Framework hat NULL (in zahlen:) 0 Funktionen zum Fokusieren, oder sonstiges, ich bau es mir mit standart javascript selbst ein :)
Standart? Eine Fahne?
Also die frage wie vorher, wie kann ich ein focus setzten NACHDEM alle Feldfunktionen abgearbeitet worden sind?
Was ist eine Feldfunktion, du meinst das aktualisieren über AJAX, oder?
und solch eine Funktion gibt es nur in deinem Frmaework.
Struppi.
Das einziege was das framework macht ist das ersetzten des
div Containers mit einem php script, wobei es natürlich auch in diesem Fall via GET daten übermittelt!!
In diesem Script wird mittels Whileschleife ein Selectfeld gefüllt!
Sobald dieses Fertig ist (ich hab ca. im schnitt 1500 Datensätze) sitzt der focus auf dem formularfeld, was ich aber nicht möchte!
Deswegen die frage, kann ich abfragen WANN er fertig ist?
maik
hi,
In diesem Script wird mittels Whileschleife ein Selectfeld gefüllt!
Sobald dieses Fertig ist (ich hab ca. im schnitt 1500 Datensätze) sitzt der focus auf dem formularfeld, was ich aber nicht möchte!Deswegen die frage, kann ich abfragen WANN er fertig ist?
Es ist fertig, wenn die Funktion dies es befüllt durchgelaufen ist.
gruß,
wahsaga
Das einziege was das framework macht ist das ersetzten des
div Containers mit einem php script, wobei es natürlich auch in diesem Fall via GET daten übermittelt!!
Ja und wann tut sie das?
Wenn die AJAX Abfrage fertig ist und wie gesagt normalerweise solltest du deine eigene Callback Funktion da einklinken können, wenn nicht ist es für deine Zwecke nciht tauglich.
Struppi.
hi,
|Wenn die AJAX Abfrage fertig ist und wie gesagt normalerweise |solltest du deine eigene Callback Funktion da einklinken können, |wenn nicht ist es für deine Zwecke nciht tauglich.
Also sollte ich diese callback Funktion im Framework haben deiner meinung nach und sinnvoller weise auch nutzen?
OK, ich schau mal ...
Meld mich!
|Wenn die AJAX Abfrage fertig ist und wie gesagt normalerweise |solltest du deine eigene Callback Funktion da einklinken können, |wenn nicht ist es für deine Zwecke nciht tauglich.
Also sollte ich diese callback Funktion im Framework haben deiner meinung nach und sinnvoller weise auch nutzen?
JA, irgendwas mit onload oder onready und dann die Funktiosreferenz auf die Funktion übergeben, wo du den Fokus setzt.
Struppi.
hi,
zur klarstellung: Das Framework hat NULL (in zahlen:) 0 Funktionen zum Fokusieren, oder sonstiges
Dann lässt sich das Problem ja sicher auch ohne Nutzung dieses Framework reproduzieren?
gruß,
wahsaga
Ja klar ...
generell, deswegen schrieb ich von anfang an, ajax beiseite lassen, ist eher als dreingabe zum verständiss!
Selbst wenn ich IN der seite oder mittels einfacher frames
oder php include arbeite, alles das selbe :)
Problem ist, sobald die whileschleife DURCH ist, ist die select auswahl ONFOCUS!
Und das will ich nicht, sondern das das einfache eingabefeld darüber ONFOCUS ist, alles klar?
Zur erklärung: Sobald ich das ERSTE zeichen geschrieben habe greift meine kleine trickkiste die ich eingebaut habe (s. 1. Post) aber nachdem ich den hersteller gewählt habe und BEVOR ich die erste eingabe im input mache springt er!
ich kanns ja mal online stellen, wenn interesse .... :)
maik