Henning: input type = text mit javascript beinflussen

Ich habe folgendes Javascript benutzt um das Aussehen von Input feldern in HTML zu beeinflussen:
<script language="JavaScript">
   <!--
   if (navigator.appName == "Netscape")
   {document.write("<input type='text' name='Name' value='Ihr Name' size='18' maxlength='50'

style='width: 150px; COLOR : #FFFFFF; FONT-FAMILY : Verdana,Arial; FONT-SIZE : 10px;'>");}
   else {document.write("<input type='text' name='Name' value='Ihr Name'

size='24' maxlength='50' style='width: 150px; COLOR : #333333; FONT-FAMILY : Verdana,Arial; FONT-SIZE : 12px;

background-color : #FFFFFF; border : 1px solid #333333; border-right : 1px solid #333333;  border-bottom-color :

#333333;  border-left-style : solid;  padding-left : 2px;'>");}
   // -->
   </script>

Ich möchte folgenden Befehl, der in HTML bewirkt, das beim Anklicken des Feldes des vordefinierten Wert löscht in das Javascript über nehmen und bin bisjetzt kläglich gescheitert.

onFocus="this.value=''"

Kann einer der Java-Chefs sich ein paar Minuten für mich Zeit nehmen und das Problemchen lösen??

Tausend Dank!

Henning

  1. Hallo, Henning.

    Du solltest die Strings besser in Hochkommata einschließen, denn HTML-Attributwerte werden in doppelte Anführungszeichen eingeschlossen:

    document.write('<input type="text" name="Name" value="Ihr Name" size="18" maxlength="50" class="input_ns" onfocus="this.value=''">');

    Wenn Hochkommata im String selbst vorkommen und sie nicht das Stringende andeuten sollen, müssen sie mit einem \ maskiert werden. Dadurch kannst du onfocus="this.value=''" im String problemlos unterbringen.

    Die Styles kannst du übrigens als Klassen auslagern (http://selfhtml.teamone.de/css/formate/zentrale.htm#klassen), dadurch wird der Code viel übersichtlicher.

    Zudem musst du in einem noscript-Element ein Eingabefeld definieren, welches angezeigt wird, wenn JavaScript deaktiviert ist.

    FONT-FAMILY : Verdana,Arial; FONT-SIZE : 12px;

    CSS-Eigenschaften und -Werte schreibst du am besten klein.
    Du musst außerdem eine generische Schriftfamilie zusätzlich zu verdana und arial angeben, also font-family:verdana,arial,sans-serif;. Vielleicht könntest du noch Helvetica angeben, darüber gab es AFAIK eine Diskussion in <dciwam />, du kannst ja mal suchen.

    Grüße,
    Mathias

  2. Hi,

    Ich habe folgendes Javascript benutzt um das Aussehen von Input feldern in HTML zu beeinflussen:
    <script language="JavaScript">

    type-Attribut vergessen.

    <!--
       if (navigator.appName == "Netscape")
       {document.write("<input type='text' name='Name' value='Ihr Name' size='18' maxlength='50'

    Verwende niemals Namen von HTML-Elementen, HTML-Attributen, Javascript-Objekten, Javascript-Funktionen, CSS-Propertys als Werte für Name- oder id-Attribute.

    'Name' ist daher ungünstig gewählt.

    style='width: 150px; COLOR : #FFFFFF; FONT-FAMILY : Verdana,Arial; FONT-SIZE : 10px;'>");}
       else {document.write("<input type='text' name='Name' value='Ihr Name'

    hier auch.

    size='24' maxlength='50' style='width: 150px; COLOR : #333333; FONT-FAMILY : Verdana,Arial; FONT-SIZE : 12px;

    background-color : #FFFFFF; border : 1px solid #333333; border-right : 1px solid #333333;  border-bottom-color :

    #333333;  border-left-style : solid;  padding-left : 2px;'>");}
       // -->
       </script>

    Ich möchte folgenden Befehl, der in HTML bewirkt, das beim Anklicken des Feldes des vordefinierten Wert löscht in das Javascript über nehmen und bin bisjetzt kläglich gescheitert.

    onFocus="this.value=''"

    Kann einer der Java-Chefs sich ein paar Minuten für mich Zeit nehmen und das Problemchen lösen??

    Nein, Java-Chefs werden das nicht lösen können. Da müßten schon Javascript-Chefs ran.

    Wo ist da das Problem?
    Einfach die Anführungszeichen quoten ("''") und das ganze im document.write im input-Element platzieren.

    Andreas

  3. Hi Henning,

    Ich möchte folgenden Befehl, der in HTML bewirkt, das beim Anklicken des Feldes des vordefinierten Wert löscht in das Javascript über nehmen und bin bisjetzt kläglich gescheitert.

    <input type="text" value="Vorgabe" onmouseover="if(this.value == 'Vorgabe'){ this.value=''};">

    Das löscht das Eingabefeld bei einem MouseOver, wenn darin der Wert "Vorgabe" steht. Andernfalls passiert nichts, da du ja eine Eingabe des Besuchers nicht löschen willst, wenn er nochmals mit der Maus über das Feld fährt.

    <input type="text" value="Vorgabe" onmouseover="this.focus();" onfocus="this.select();">

    Das markiert die gesamte Eingabe (Vorgabe) im Feld, löscht aber nichts.

    Kann einer der Java-Chefs sich ein paar Minuten für mich Zeit nehmen und das Problemchen lösen??

    Sorry, bin weder Java- noch JavaScript-Chef, aber solche Kleinigkeiten sind mit SELFHTML in wenigen Minuten gelöst...

    LG Orlando