Jens Nistler: input-feld on the fly zwischen text und password wechseln

hallo zusammen ...

ich habe momentan folgendes problem und bin mit meinem latein am ende:

ich brauche ein formular-feld, welches sich beim fokusieren von klartext zu passwort veraendert ... sinn des ganzen ist es, dass der bezeichner des eingabefeldes (hier z.b. "Benutzerpasswort") aus platzgruenden innerhalb des eingabefeldes stehen sollte, allerdings die eingabe des passworts wie gewohnt nicht im klartext, sondern mit '*' erfolgt ...

bisherige versuche:

  • on-the-fly-erzeugung eines neuen formular-feldes per js/dom, welches sich dann aber nicht mehr per code fokusieren laesst

  • onkeydown, onkeyup, onkeypress etc ... eingabe in variable speichern und nur '*' anzeigen lassen ... verworfen, da kurzzeitig immernoch der letzte buchstabe als klartext erscheint ...

ich waere sehr gluecklich, wenn einer von ihnen mir bei diesem problem helfen koennte ... vielen dank schon einmal im voraus ...

Jens Nistler

  1. Hi,

    ich brauche ein formular-feld, welches sich beim fokusieren von klartext zu passwort veraendert ...

    wenn das ginge, wäre auch ein Wechsel zwischen text und radio oder checkbox möglich, oder - noch schlimmer - zwischen text und file. Ergo: Darf nicht gehen, _kann_ nicht gehen. Geht nicht.

    • on-the-fly-erzeugung eines neuen formular-feldes per js/dom, welches sich dann aber nicht mehr per code fokusieren laesst

    Das gibt je nach Browser Probleme, weil sich das neue Feld dann nicht in das Formular integriert.

    • onkeydown, onkeyup, onkeypress etc ...

    Was hälst Du von einem simplen title="Passwort"?

    Cheatah

    1. Was hälst Du von einem simplen title="Passwort"?

      wenn ich richtig informiert bin ist "title" kein attribut fuer ein eingabefeld nach w3c ...
      aber danke fuer den vorschlag

      1. Hallo Jens,

        wenn ich richtig informiert bin ist "title" kein attribut fuer ein eingabefeld nach w3c ...

        stimmt, das title-Attribut hat eine andere Funktion und darauf will
        Dich Cheatah hinweisen:
        http://www.w3.org/TR/html401/struct/global.html#adef-title
        http://de.selfhtml.org/html/attribute/allgemeine.htm#uebersicht

        Viele Grüße,
        Stefan

        1. stimmt, das title-Attribut hat eine andere Funktion und darauf will

          ja ok ... habe wohl ein wenig auf dem schlauch gestanden ...
          allerding ist dann das problem, dass der user erst mit der maus ueber das feld gehen muss, um zu erkennen welchen sinn es besitzt, was ich fuer nicht wirklich userfreundlich halte ...

          also eine loesung, die genau das gewuenschte ergebnis erzielt, naemlich zuerst den bezeichner und spaeter das '*'-passwort im feld gibt es nicht?!?

          gruss jens

          1. Hi,

            allerding ist dann das problem, dass der user erst mit der maus ueber das feld gehen muss, um zu erkennen welchen sinn es besitzt, was ich fuer nicht wirklich userfreundlich halte ...

            Ein Formular so vollzustopfen, daß aus Platzgründen keine Labels mehr angezeigt werden können, ist auch nicht gerade userfreundlich...

            Aber Du könntest noch folgendes probieren:
            Platziere per CSS ein <input type="text"> über dem <input type="password">. Sobald dieses <input type="text" den Fokus bekommt, läßt Du es verschwinden (onfocus="this.style.display='none';) und setzt den Fokus ins Passwort-Feld.
            Das setzt also Javascript voraus - ist also auch schon wieder userunfreundlich...

            Andreas

            1. Aber Du könntest noch folgendes probieren:
              Platziere per CSS ein <input type="text"> über dem <input type="password">. Sobald dieses <input type="text" den Fokus bekommt, läßt Du es verschwinden (onfocus="this.style.display='none';) und setzt den Fokus ins Passwort-Feld.
              Das setzt also Javascript voraus - ist also auch schon wieder userunfreundlich...

              Andreas

              nur zur erklaerung: ich will nix vollstopfen, ist einfach vom design her so, dass nicht wirklich platz fuer erklaerungsfelder ist ...
              siehe: http://macebo.homelinux.com/gfx/swe_test.jpg

              mit dem position:absolute is eben so eine sache, weil jeder browser die absolute position woanders sieht ;)

              aber ich probier es mal so ... danke

              1. Hallo, Jens,

                nur zur erklaerung: ich will nix vollstopfen, ist einfach vom design her so, dass nicht wirklich platz fuer erklaerungsfelder ist ...

                Würdest du für ein Design auch töten?

                M.

      2. Was hälst Du von einem simplen title="Passwort"?
        wenn ich richtig informiert bin ist "title" kein attribut fuer ein eingabefeld nach w3c ...

        Du bist NICHT richtig informiert.
        http://www.w3.org/TR/html401/index/attributes.html sagt:

        title

        All elements but BASE, BASEFONT, HEAD, HTML, META, PARAM, SCRIPT, TITLE

        Das Element INPUT seh ich in der Ausschlußliste nicht...

        Und unter
        http://www.w3.org/TR/html401/interact/forms.html#edef-INPUT
        steht:
        <!ELEMENT INPUT - O EMPTY              -- form control -->
        <!ATTLIST INPUT
          %attrs;                              -- %coreattrs, %i18n, %events --
        wobei %attrs; per
        <!ENTITY % attrs "%coreattrs; %i18n; %events;">

        und %coreattrs; als

        <!ENTITY % coreattrs
         "id          ID             #IMPLIED  -- document-wide unique id --
          class       CDATA          #IMPLIED  -- space-separated list of classes --
          style       %StyleSheet;   #IMPLIED  -- associated style info --
          title       %Text;         #IMPLIED  -- advisory title --"
          >

        definiert ist.

        Andreas