Logisches Tippen in einer Combobox

  • Hallo zusammen,


    ich habe eine Combobox Konten(über @DBLookup), welche mir die Werte sauber anzeigt und auswählbar(klickbar) macht.
    Nehmen wir an darin stünden die Werte:
    100000
    100001
    100002
    110000
    Wenn ich über ein Tab in die Box springe und manuell "1"+"1" tippe, erhalte ich den zweiten Wert(100001).
    Kann ich das Verhalten so ändern, dass ich die 110000 ("1"+"1"0000) erhalte?


    Danke und beste Grüße


    Marc

  • Selbstverständlich nicht!
    Es wird der erste Tastendruck (hier: "1") eingelesen und auf den ersten Eintrag gesprungen, dessen erstes Zeichen die "1" enthält. Danach wird vom OS festgestellt, dass noch einmal eine Taste gedrückt wurde. Und dem OS ist es so Latte wie nur was, welche das ist; für logische Zuordnungen ist es nicht zuständig, kann und soll es auch nicht sein. Es wird also im Index der Liste unterhalb des aktuellen Eintrag ein Zeichen gesucht, das dem erneuten Tastendruck an erster Stelle entspricht. Das ist hier die "100001". Es wird also keinesfalls auf die letzte "1" innerhalb der Zeichenkette gesprungen, da die letzte Stelle im Index gar nicht existiert.


    Wenn du die Zeichenkette "110000" selektiert haben willst, brauchst du eine von 2 Möglichkeiten:
    entweder verdammt schnelle Finger, die so schnell den Tastaturpuffer vollschreiben, dass dort die Zeichenkette "11" enthalten ist, bevor er geflushed wird (viel Spaß beim Probieren) oder
    du greifst so tief in das OS ein, dass erst auf explizite Anforderung hin der Tastaturpuffer geflushed wird und bis dahin reingeschrieben werden kann (ebenfalls viel Spaß dabei)


    Das sind aber Grundlagen dessen, wie Ein-/Ausgabemechanismen des jeweiligen drunter liegenden Betriebssystems funktionieren.

    Life is not a journey to the grave with the intention of arriving safely in a pretty and well-preserved body, but rather to skid in broadside, thoroughly used up, totally worn out, and loudly proclaiming "Wow, what a ride!!! :evil:
    Beschleunigung ist, wenn die Tränen der Ergriffenheit waagrecht zum Ohr hin abfliessen - Walter Röhrl

  • Möglich wäre eine ganze Menge, die Frage ist nur "Warum"?
    Du hast eh die Hand an der Maus für das Dropdown-Feld zu bedienen, dann willst du die Hand von der Maus wegnehmen, um zu tippen, anstatt sie zu lassen wo sie eh schon ist und auf diese Weise Werte auszuwählen?


    Das hat aber mal so rein gar nichts mit Softwareergonomie zu tun. Ich würde mir den Spaß ja schenken....

    Life is not a journey to the grave with the intention of arriving safely in a pretty and well-preserved body, but rather to skid in broadside, thoroughly used up, totally worn out, and loudly proclaiming "Wow, what a ride!!! :evil:
    Beschleunigung ist, wenn die Tränen der Ergriffenheit waagrecht zum Ohr hin abfliessen - Walter Röhrl

  • Es ist eher andersherum- die Anwender bedienen nahezu ausschließlich die Tastatur. Ich möchte durch die Werte in der Combobox Fehleingaben vermeiden und ein reiner Check ist mir zu wenig.
    Daher dachte ich an eine Art Autoverfollständigen, in dem einem die möglichen Werte abhängig von der schon getätigten Eingabe angezeigt werden:
    "1" >
    100000
    100001
    100002
    "11" >
    110000
    Die Combobox war nur erdachtes Mittel zum Zweck ...

  • Das wird nicht funktionieren. Das OnChange- bzw. Exiting-Event wird nur ausgelöst, wenn das Feld verlassen wird. D.h.: eine "Realtime" Autovervollständigung lässt sich so nicht realisieren. Bleibt also doch nur die Input Validation.


    Was mglw. eine Alternative wäre:
    es wird eine Form gebaut, die mehrere Radiobuttons enthält. Einen für den "10er" Nummernkreis, einen für den "11er", usw. usf. In Abhängigkeit der gewählten Checkbox wird in der Combobox dann nur noch die Auswahl angezeigt, die den ersten beiden Zeichen entspricht. Kommt halt drauf an, wie umfangreich die Liste in Summe ist. Hat man die ersten beiden Zeichen abgefackelt, kommt irgendwer auf die Idee, die ersten 3 haben zu wollen, dann 4 Zeichen, usw. Und all das bedingt dann eben auch die Bedienung per Maus. Von daher stellt sich die Frage, ob man sich den Stress überhaupt machen möchte, ob eine simple Eingabevalidierung nicht doch ausreicht?

    Life is not a journey to the grave with the intention of arriving safely in a pretty and well-preserved body, but rather to skid in broadside, thoroughly used up, totally worn out, and loudly proclaiming "Wow, what a ride!!! :evil:
    Beschleunigung ist, wenn die Tränen der Ergriffenheit waagrecht zum Ohr hin abfliessen - Walter Röhrl

    • Offizieller Beitrag

    ... oder umstellen auf xPage.


    Gruß
    Dirk

    Rein logisches Denken verschafft uns keine Erkenntnis über die wirkliche Welt.
    Alle Erkenntnis der Wirklichkeit beginnt mit der Erfahrung und endet mit ihr.
    Alle Aussagen, zu denen man auf rein logischen Wegen kommt, sind, was die Realität angeht, vollkommen leer.
    Albert Einstein