Hi - I''m trying to implement a search box that has a pre-filled message "enter search text." The first time it''s selected, I''d like it to clear out, but after that, I''d like it to remain. I imagine lots of people have done this, any ideas how to accomplish this? Thanks, Dino --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Not sure exactly what you mean by "The first time it''s selected, I''d like it to clear out, but after that, I''d like it to remain", but I do much the same functionality with this line: <%= text_field ''model_name'', ''column_name'', :value => "Enter search text...", :onclick => ''if (this.value=="Enter search text...") {this.value=""; }'' %> This clears it out. You could also do something on lost of focus and set the value to Enter search text... if it''s blank. On Jun 18, 8:54 am, "dino d." <dinodorr...-/E1597aS9LQAvxtiuMwx3w@public.gmane.org> wrote:> Hi - I''m trying to implement a search box that has a pre-filled > message "enter search text." The first time it''s selected, I''d like > it to clear out, but after that, I''d like it to remain. I imagine > lots of people have done this, any ideas how to accomplish this? > > Thanks, > Dino--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Aurélien Bottazini
2008-Jun-18 15:32 UTC
Re: clear search box the first time it''s selected
You can use _value=''your pre filled message''_ in your search input to set a pre-fillled message. Then you can use onfocus and onblur (javascript) to clear our and re- fill your search box _Aurélien Bottazini_ http://www.mycashgarden.com
that''s pretty much what I did. I have several search forms that I want to have the functionality you''re looking for. I give the search forms a class "searchform". The search text is always named "q" and I have a hidden field called hint to customize the hint text. I am using lowpro (google it) to separate the code from my view. In view: <form class="searchform" .... > <input name="q" type="text" class="search" ... /> <input type="hidden" name="hint" value="Enter product name or # to search" /> </form> is js: function notempty(fld) { return fld.value!=null && fld.value.match(/\S/)!=null; } Event.addBehavior({ ''.searchform:submit'': function() { // is query text not empty and not the hint text? if (notempty(this.q) && this.q.value!=this.hint.value) { elems = this.elements; // remove the hint and empty fields so they don''t show in the query string (optional) for( i=elems.length-1;i>=0;i--) if (elems[i].value=="" || elems[i].name==''hint'') elems[i].remove(); return true; } // you may want to display an alert instead of just returning false return false; }, ''input.search:blur'': function() { if (notempty(this)) return; this.style.color=''#444''; this.value=this.form.hint.value; }, ''input.search:focus'': function() { this.style.color=''#000''; if (this.value == this.form.hint.value) this.value=''''; else this.select(); }, }); --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
sorry, I left out a couple of details. in body onload, I have to loop thru the search form and put the hint value in the text box. Add this to Event.addBehavior above ''body'': function() { $$(''form.searchform'').each( function( frm) { if (empty(frm.q)) { frm.q.value = frm.hint.value; frm.q.style.color="#444";} }); }, Also, in my view, add any existing query param in the search text (optional) <input type="text" name="q" value="params[:q]" /> --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---