Conny: Formular: Feldvorbelegung soll beim Klick hinein verschwinden

Hallöchen ihr,

ein input-Feld soll vorbelegt sein, was ja mit value="Blafasel" funktioniert. Wenn man in so ein vorbelegtes Feld aber mit der Maus reinklickt, wäre es schön, wenn die Vorbelegung verschwindet, was sie so aber nicht tut. Nun meine ich aber, das durchaus schon erlebt zu haben. Benötigt man dafür eine andere Angabe oder ein Script oder geht es doch nicht?

Gruß,
Conny

  1. Hallo, damit müsste es klappen.

    REM -- start --
    <html>
    <head>
    <title></title>
    <meta name="author" content="SchnorrbuschS">

    </head>

    <script language="JavaScript">
    <!--
    function fokussetzen2(nach) {
     document.getElementById(nach).focus();
     document.getElementById(nach).select();
     document.getElementById(nach).value="";
    return
    }

    //-->
    </script>
    <noscript></noscript>

    <body text="#000000" bgcolor="#FFFFFF" link="#FF0000" alink="#FF0000" vlink="#FF0000" onload="fokussetzen2('e18')">

    <input iD="e14" type="input" name="txtEingabe18" name="" on="" value="drucken">
     <input iD="e15" type="input" name="txtEingabe18" name="" on="" value="drucken">
     <input iD="e18" type="input" name="txtEingabe18" name="" on="" value="drucken">

    </body>
    </html>
    REM --- ende ---

    Mfg

    Steve Schnorrbusch

    1. Achso, das [onload="fokussetzen2('e18')] muss aus dem <body> raus und in das Textfeld mit onClick rein... das Textfeld sieht dann so aus:

      REM --- start ---

      <input iD="e18" type="input" name="txtEingabe18" name="" onClick="fokussetzen2('e18')" value="drucken">

      REM --- ende ---

      Sorry

      Steve Schnorrbusch

      1. Sorry

        Kein Problem, ich kann zwar nicht viel JavaScript, aber ein kleines bischen kann ich schon abstrahieren. Wichtig ist, dass ich überhaupt einen Anknüpfungspunkt habe, sonst steht man bei manchem Problem doch ganz schön im Regen, wenn man nicht weiß, ob man jetzt auf der Script-Ebene suchen muss oder es vielleicht einen HTML-Befehl gibt, den man noch nicht kennt oder ob es vielleicht schlicht nicht lösbar ist, so wie man das gerne hätte.

        Gruß,
        Conny

      2. Moin

        Achso, das [onload="fokussetzen2('e18')] muss aus dem <body> raus

        richtig

        und in das Textfeld mit onClick rein

        falsch, dafür gibt es onfocus (onclick werkt nur mit der Maus)

        Gruß
        rfb

        1. und in das Textfeld mit onClick rein
          falsch, dafür gibt es onfocus (onclick werkt nur mit der Maus)

          Die Frage war doch "Feldvorbelegung soll beim Klick hinein verschwinden"?

          MfG

          schnorri s.

          1. Moin

            Die Frage war doch "Feldvorbelegung soll beim Klick hinein verschwinden"?

            Wahre Worte, aber ich vermute dass doch schon eher "den Fokus setzen" gemeint war.
            2 verschiedene Verhaltensweise eines Formulars in Abhängigkeit vom Nutzerinterface wären reichlich ungewöhnlich.

            (Ich hab eh den Eindruck, dass in diesem Forum eine ungewöhnliche Sympathie für onclick besteht, ohne dass immer eine Alternative für "Tastatursurfer" bedacht wird.)

            Gruß
            rfb

    2. Hallo Steve,

      damit werde ich es mal probieren, danke.

      Conny

    3. Hallo Steve,

      Hallo, damit müsste es klappen.

      nein, das ist Humbug - auch mit deinem Nachsatz.

      <script language="JavaScript">

      Hier fehlt das type-Attribut; das language-Attribut kannst du dafür getrost aus deinem Gedächtnis streichen.

      document.getElementById(nach).focus();
      document.getElementById(nach).select();
      document.getElementById(nach).value="";

      Dreimal der gleiche getElementById()-Aufruf? Das kann man effizienter machen, indem man getElementById() nur einmal aufruft und sich die damit erhaltene Referenz merkt. Noch besser ist es natürlich, man lässt sie gleich durch den Eventhandler übergeben - mit 'this' sehr elegant zu lösen.

      <noscript></noscript>

      Wozu das?

      <body text="#000000" bgcolor="#FFFFFF" link="#FF0000" alink="#FF0000" vlink="#FF0000" onload="fokussetzen2('e18')">

      Was soll das alles? Wozu gibt es CSS?

      <input iD="e14" type="input" name="txtEingabe18" name="" on="" value="drucken">
      <input iD="e15" type="input" name="txtEingabe18" name="" on="" value="drucken">
      <input iD="e18" type="input" name="txtEingabe18" name="" on="" value="drucken">

      Es gibt hier keinen Wert 'input' für das type-Attribut. Du meintest vermutlich type="text". Außerdem hat das input-Element kein on-Attribut. Was stellst du dir darunter vor?

      Wenn du also nur eine vage Ahnung hast, dann schreib das bitte dazu. Sonst kommt man als Leser auf die Idee, du *wüsstest* es, und wundert sich, dass der Unsinn so nicht funktioniert.

      So long,
       Martin

      --
      Butterkeksverteiler zu werden ist vermutlich eine der wenigen beruflichen Perspektiven, die sich noch bieten, wenn man einen an der Waffel hat.
        (wahsaga)
      1. Es funktioniert doch. Ok, ich hätte es noch hübsch machen können aber es läuft (mit dem Nachsatz). Es wurde weder nach CSS noch nach Java- Einbindung unter html gefragt. Sie wollte nur wissen ob geht und dafür mal ne Lösung sehen.

        Wenn du also nur eine vage Ahnung hast, dann schreib das bitte dazu. Sonst kommt man als Leser auf die Idee, du *wüsstest* es, und wundert sich, dass der Unsinn so nicht funktioniert.

        So long,
        Martin

        ???

        1. Hallo,

          Es funktioniert doch.

          ja, das liest man hier oft als Pseudo-Argument. Und ja, es funktioniert tatsächlich. Zufällig. Oder dank der Fehlertoleranz der gängigen Browser.

          Ok, ich hätte es noch hübsch machen können

          Ob "hübsch" oder nicht, ist hier gar nicht das Thema.
          Aber wenn du Lösungsvorschläge anbietest, dann sollten die -auch wenn sie vielleicht ästhetisch oder technisch nicht optimiert sind- wenigstens keine groben Fehler enthalten. Fehler wie beispielsweise das Fehlen vorgeschriebener Attribute (type bei <script>), das Hinzumogeln erfundener Attribute (on bei <input>) oder ungültige Werte für Attribute (type="input").

          Es wurde weder nach CSS noch nach Java- Einbindung unter html gefragt.

          Stimmt. Conny hat allgemein nach einer Lösung gefragt. Dass diese Lösung zwingend Javascript voraussetzt (von Java allerdings keine Spur), ist eine Tatsache. Also muss man den Themenschwerpunkt sanft in diese Richtung schieben. Und CSS gehört zu HTML sowieso *immer* dazu, wenn einem das Aussehen nicht völlig egal ist.

          Wenn du also nur eine vage Ahnung hast, dann schreib das bitte dazu. Sonst kommt man als Leser auf die Idee, du *wüsstest* es, und wundert sich, dass der Unsinn so nicht funktioniert.
          ???

          Nochmal anders formuliert: Deine Antwort lässt erkennen, dass du zwar eine ungefähre Vorstellung hast, wie es gehen könnte. Aber in der Realisierung bist du ziemlich unsicher. Okay. Dann hab aber bitte auch soviel Selbstvertrauen zu sagen, "mit der Technik xy könntest du dein Vorhaben realisieren, ich weiß aber nicht genau, wie das aussehen müsste".

          Ciao,
           Martin

          --
          Ich bin im Prüfungsstress, ich darf Scheiße sagen.
            (Hopsel)
          1. Hi,

            ja, das liest man hier oft als Pseudo-Argument. Und ja, es funktioniert tatsächlich. Zufällig. Oder dank der Fehlertoleranz der gängigen Browser.

            Ok, ich weiss was Du meinst. Beim nächstenmal... versprochen!

            Nochmal anders formuliert: Deine Antwort lässt erkennen, dass du zwar eine ungefähre Vorstellung hast, wie es gehen könnte. Aber in der Realisierung bist du ziemlich unsicher.

            Eigendlich nur zu hastig. Das hinzugemogelte on war nur unvollständig gelöscht und das hier

            ---
            <script language="JavaScript">
            <!--

            //-->
            </script>
            <noscript></noscript>
            ---

            passiert wenn man mit der alten htmledit Phase5 Version den Vordefinierten Button klickt... hätt ich überprüfen können...ok.

            Okay. Dann hab aber bitte auch soviel Selbstvertrauen zu sagen, "mit der Technik xy könntest du dein Vorhaben realisieren, ich weiß aber nicht genau, wie das aussehen müsste".

            Mein 1. Satz war "Hallo, damit müsste es klappen."

            Im Übrigen reicht ein "Achtung, wenn Du das so und so machst verstößt Du gegen das, das, das und das." Aber ok, das Forumarchiv sagt mehr als 1000 Worte...

            in diesem Sinne... bin ja noch jung... bye

            schnorri

  2. ein input-Feld soll vorbelegt sein, was ja mit value="Blafasel" funktioniert. Wenn man in so ein vorbelegtes Feld aber mit der Maus reinklickt, wäre es schön, wenn die Vorbelegung verschwindet, was sie so aber nicht tut. Nun meine ich aber, das durchaus schon erlebt zu haben. Benötigt man dafür eine andere Angabe oder ein Script oder geht es doch nicht?

    Ja.

    <input value="Blafasel"
    onclick="if(this.value == this.defaultValue) this.value = '';"
    onblur="if(!this.value) this.value = this.defaultValue;"

    Struppi.

    --
    Javascript ist toll (Perl auch!)
    1. Moin!

      <input value="Blafasel"
      onclick="if(this.value == this.defaultValue) this.value = '';"
      onblur="if(!this.value) this.value = this.defaultValue;"

      Und was, wenn ich "Blafasel" dort drin stehen haben möchte? Das würde mir dann sofort beim nächsten kokussieren entfernt. Wie wäre es stattdessen mit:

      onclick="if( done[this.id]++ == 0 ) this.value = '';"

      Den onblur Handler lasse ich auch weg, denn was ist, wenn ich User da gar nix drin haben möchte?

      -- Skeeve

      1. Hallo Skeeve.

        <input value="Blafasel"
        onclick="if(this.value == this.defaultValue) this.value = '';"
        onblur="if(!this.value) this.value = this.defaultValue;"

        Und was, wenn ich "Blafasel" dort drin stehen haben möchte?

        Dann löschst du den Inhalt des Formularfeldes und erfreust dich der Tatsache, dass der Standardwert beim Verlassen des Feldes automagisch wieder erscheint.

        Einen schönen Montag noch.

        Gruß, Mathias

        --
        ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)
        debian/rules
        1. Moin!

          Dann löschst du den Inhalt des Formularfeldes und erfreust dich der Tatsache, dass der Standardwert beim Verlassen des Feldes automagisch wieder erscheint.

          1. Ein sehr unübliches Verhalten
          2. Beantwortet das nicht meine zweite Frage.

          -- Skeeve

            1. Beantwortet das nicht meine zweite Frage.

            In der Regel macht man sowas bei Feldern die ausgefüllt werden müssen, d.h. sie dürfen nicht leer sein.

            Struppi.

            --
            Javascript ist toll (Perl auch!)