isatux: Mit CSS bei Click resetten

Hallo,

folgendes Problem:

.lala {background-color: #4f4f4f;}
input.lala:focus{???}

<input type="text" value="dd.mm.yyyy" class="lala"
name="date">

statt ??? brauch ich einen Befehl, der nur das Input Feld leert, also wie reset.

Wenn es nicht mit CSS geht, könnte mir bitte jemand den Befehl für Javascript schreiben.

Vielen Dank im Vorraus!!!

mfG
isatux

  1. Hi,

    <input type="text" value="dd.mm.yyyy" class="lala"
    name="date">

    Wenn es nicht mit CSS geht, könnte mir bitte jemand den Befehl für Javascript schreiben.

    Ob es mit CSS geht weiß ich nicht, aber mit JS geht es auf alle fälle mit dem onfocus-event:

    onfocus="this.value=''"

    Jedoch kann es recht nervig für den Anwender werden, wenn er mit Tab durch das Formular geht und bei jedem Focusieren des Feldes seine Eingabe wieder gelöscht wird. Vielleicht wäre es besser, wenn du es nur leerst, wenn "dd.mm.yyyy" darin steht.

    mfG,
    steckl

    1. Moin Moin!

      Ob es mit CSS geht

      CSS ist nur für die Formatierung zuständig, nicht für den Inhalt. Javascript ist schon der richtige Weg. Trotzdem muß auf der Server-Seite noch einmal geprüft werden, den niemand garantiert, dass das Feld überhaupt fokussiert wird oder dass auf der Client-Seite überhaupt so etwas wie Javascript vorhanden ist.

      Zwei Ansätze wären denkbar, um nur den Dummy-Wert zu löschen: Entweder gezieht auf den Dummy-Wert vergleichen (1) oder nur ein einziges Mal beim ersten Fokussieren ohne weitere Bedingung löschen, indem der onfocus-Handler sich selbst löscht (2).

      (1): if (this.value=="dd.mm.yyyy") { this.value=''; }
      (2): this.onfocus=function(){return true};this.value='';

      Alexander

      --
      Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".
    2. Hallo

      <input type="text" value="dd.mm.yyyy" class="lala"
      name="date">

      Ob es mit CSS geht weiß ich nicht, aber mit JS geht es auf alle fälle mit dem onfocus-event:

      onfocus="this.value=''"

      Jedoch kann es recht nervig für den Anwender werden, wenn er mit Tab durch das Formular geht und bei jedem Focusieren des Feldes seine Eingabe wieder gelöscht wird. Vielleicht wäre es besser, wenn du es nur leerst, wenn "dd.mm.yyyy" darin steht.

      die Lösung dafür wurde hier schon vielfach gepostet:

      z.B. von Struppi

        
      <input type="text" value="dd.mm.yyyy" class="lala"  
      onclick="[code lang=javascript]if(this.value == this.defaultValue) this.value = '';
      ~~~"  
      onblur="`if(!this.value) this.value = this.defaultValue;`{:.language-javascript}"  
      name="date">  
      [/code]  
        
        
      Freundliche Grüße  
        
      Vinzenz