Readers: 17
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
#!perl use strict; use warnings; use Tk; my $mw = tkinit(-width => 400, -height => 300,); $mw->packPropagate(0); my $default_text = 'Default...'; my $previous_input = ''; my $e = $mw->Entry(-text => $default_text)->pack(-fill => 'x', -expand => 0); my $e2 = $mw->Entry(-text => 'dummy',)->pack(-fill => 'both', -expand => 1); $e->bind('<FocusIn>' => [sub{ my $entry = shift; my $default = shift; my $previous = shift; if( $entry->get() eq $default_text ) { $entry->delete(0, 'end'); $$previous = ''; }else{ $$previous = $entry->get(); } }, $default_text, \$previous_input]); $e->bind('<FocusOut>' => [sub{ my $entry = shift; my $default = shift; my $previous = shift; if( $entry->get() eq '' ) { $entry->insert(0, $default_text); $$previous = ''; }else{ $$previous = $entry->get(); } print "previous input is now set to [$$previous]\n"; }, $default_text, \$previous_input]); $e->bind('<Escape>' => [sub{ my $entry = shift; my $mw = shift; my $previous = shift; if( $$previous ne '' and $entry->get() ne $previous_input ) { $entry->delete(0, 'end'); $entry->insert(0, $$previous); } $mw->focus(); }, $mw, \$previous_input]); $e->bind('<KeyPress>' => [sub{ my $entry = shift; my $key = shift; return undef if $key eq 'Escape'; print "$key was pressed\n"; }, Ev('K')]); $mw->MainLoop(); exit(0);
2011-03-11T11:56:02 pktmIch habe hier mal eine Funktionalität nachgebaut, die ich auf Webseiten öfter mal vorfinde. Dort gibt es ein Input-Feld, das bereits Text enthält, z.B. "Suchen..." (wäre übrigens oben für die Sucheingabe auch ganz schön :)).
2011-03-11T12:18:08 pqEs ist nicht nur unverschämt, sondern die Webentwickler haben keinerlei Hirn und verstoßen gegen Usability und Regeln der Zugänglichkeit.ich finde es im gegenteil unglaublich frech, wieviele webseiten irgendein wort in ein suchfeld schreiben, das ich erst manuell löschen muss, weil die natürlich automatisch annehmen, dass ich auf jeder popelseite javascript aktiviert habe.
QuoteGeht auch anders. ;)heisst: die einzige variante, die javascriptlose user *nicht* vor den kopf stossen würde, wäre, das wort erst nachträglich mit javascript reinzuschreiben. das hat dann (bei den usern *mit* javascript) zur folge, dass der browser unter umständen mal ne weile braucht, bis das javascript dann zur ausführung kommt, und man schon fleissig ins suchfeld was eintippt. was dann überschrieben oder vermischt wird.
<input placeholder="Suchbegriff..." id="Suche" value="">