vorbelegte Suchfelder bei Suche nicht beachten
bastold
- programmiertechnik
0 dave0 bastold
0 Gunnar Bittersmann0 dedlfix0 suit
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:
Vielen Dank!
@@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'
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!
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