bastold: vorbelegte Suchfelder bei Suche nicht beachten

Hallo!

Ich habe ein Suchformular auf meiner Seite, bei welchem ich die einzelnen Suchfelder aus Designgründen mit einem defaultValue vorbelege. Dieser defaultValue gibt an, für was das jeweilige Suchfeld steht.

Bei onFocus auf dieses Feld, wird der defaultValue gelöscht, bei onBlur wird der defaultValue wieder gesetzt, sollte der Suchende nichts in das Feld geschrieben haben.

Wenn man jetzt das Suchformformular abschickt, werden natürlich die defaultValue-Werte im POST mitgeschickt. Das Feld soll dannin meiner Suche NICHT beachtet werden, wenn es den defaultValue beinhaltet.

Ich könnte beim Verarbeiten des Formulars prüfen, ob der Wert, der geschickt wurde, dem defaultValue entspricht und dann dieses Feld von der Suche aussschliessen.

Ich habe mir nun den Kopf zerbrochen, ob es nicht evtl. eine elegantere Lösung dafür gibt.

Mir fiel dann nur ein, das jeweilige Input-Feld mit einem background-image zu belegen, nur habe ich dann das "Problem", wenn ich die Größe des Input-Feldes layoutmaessig ändern will, muss ich immer daran denken, dass ich die Hintergrundgrafik neu erstelle.

Seht ihr noch eine andere Möglichkeit?
Bedingungen sind:

  • im Inputfeld steht ein defaultValue, der beschreibt, nach was gesucht wird, wenn man das Feld ausfüllt (also z.b. das Wort "Titel" oder "Autor")
  • beim Klick in das Inputfeld, wird der Inhalt gelöscht, sollte es sich um den defaultValue handeln
  • wenn das Feld verlassen wird und der Suchende hat nichts in das Feld geschrieben, wird wieder der defaultValue gesetzt
  • wenn möglich soll das jeweilige Feld nicht mitgeschickt bzw. leer sein, wenn das Formular abgeschickt wurde und das Feld immer noch mit dem defaultValue belegt ist.

Vielen Dank!

  1. Hi,

    das placeholder-Attribut.

    ~dave

    1. das placeholder-Attribut.

      Ich liebe das Forum :)

      Vielen, vielen Dank!

  2. @@bastold:

    nuqneH

    Bedingungen sind:

    • im Inputfeld steht ein defaultValue, der beschreibt, nach was gesucht wird, wenn man das Feld ausfüllt (also z.b. das Wort "Titel" oder "Autor")

    Nein, da sollte nichts stehen.

    In HTML5 gibt es das @placeholder-Attribut.

    Auch für älte Browser gibt es Wege, den Anzeigetext nicht als Wert des Eingabefeldes zu setzen.

    Und überhaupt sollten Placeolder nicht als Labels missbraucht werden.

    Qapla'

    --
    Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
    (Mark Twain)
  3. Hi!

    Ich habe ein Suchformular auf meiner Seite, bei welchem ich die einzelnen Suchfelder aus Designgründen mit einem defaultValue vorbelege. Dieser defaultValue gibt an, für was das jeweilige Suchfeld steht.

    Warum muss das denn im Feld stehen und kann nicht daneben und bei längerer Erläuterung ausklappbar daneben stehen?

    Bei onFocus auf dieses Feld, wird der defaultValue gelöscht, bei onBlur wird der defaultValue wieder gesetzt, sollte der Suchende nichts in das Feld geschrieben haben. Wenn man jetzt das Suchformformular abschickt, werden natürlich die defaultValue-Werte im POST mitgeschickt.

    Das ist nicht "natürlich", genauso wie es nicht "natürlich" ist, was du da bei onfocus und onblur machst. Und auf die gleiche "unnatürliche" Weise kannst du die Default-Werte auch erst mit Javascript setzen und vor dem Absenden entfernen.

    Das Feld soll dannin meiner Suche NICHT beachtet werden, wenn es den defaultValue beinhaltet. Ich könnte beim Verarbeiten des Formulars prüfen, ob der Wert, der geschickt wurde, dem defaultValue entspricht und dann dieses Feld von der Suche aussschliessen.

    Dann muss das eben im Zuge der anderen Prüfungen (wie Pflichtfelder) mitgeprüft werden, wenn du den Default-Wert nicht mit Javascript einsetzen und löschen willst. Wo ist das Problem daran? Du erstellst das einmalig. Fertig.

    Mir fiel dann nur ein, das jeweilige Input-Feld mit einem background-image zu belegen, nur habe ich dann das "Problem", wenn ich die Größe des Input-Feldes layoutmaessig ändern will, muss ich immer daran denken, dass ich die Hintergrundgrafik neu erstelle.

    Die Prüfung hätte das Problem nicht.

    • im Inputfeld steht ein defaultValue, der beschreibt, nach was gesucht wird, wenn man das Feld ausfüllt (also z.b. das Wort "Titel" oder "Autor")
    • beim Klick in das Inputfeld, wird der Inhalt gelöscht, sollte es sich um den defaultValue handeln

    Und wenn man einmal reingeklickt hat, sieht man gar nicht mehr, was da rein soll. (Kann ja sein, dass man zwischen Reinklicken und Ausfüllen abgelenkt wird.)

    Bei Suchfeldern, die unter beengten Platzverhältnissen stehen sollen, ist das vielleicht noch einsehbar. Aber ein angenommenerweise "normales Formular" sollte nebenher Platz haben für eine permanente Beschriftung.

    Lo!

  4. Nebst dem genannten placeholder-Attribut in HTML5 ist natürlich auch denkbar, einfach nur ein Fake-Element hinter/über dem Formularfeld anzuzeigen, welches garnicht mitgesendet werden kann - z.B. das Label:

    http://suit.rebell.at/artikel/vorbelegte-formularfelder-leeren