I have an autocompleter tag in Struts 2.
I have certain operations to be done when the tag is placed on the autocompleter....
On focus, when I click the autocompleter textbox, the text Select or Type tag ends with ;
will be removed.
If I process some other event, the text should reappear.
How to achieve this functionality ?
<sj:autocompleter
cssStyle="width:200px;"
href="%{#autoCompleteTagUrl}"
onSelectTopics="tagsAllSelectTopics"
onCompleteTopics="tagsAllCompleteTopics"
id="tags_all"
name="tags_all"
cssClass="inputText tags_all tag-textbox docTxt"
tooltip="true"
value="Select or Type tag ends with ;"
onfocus="if(this.value=='Select or Type tag ends with;'){this.value='';}"
loadingText="Loading...."
/>
IF <sj:autocompleter />
allows dynamic attributes (that means that you can write attributes not listed on the documentation, like <sj:autocompleter foo="bar" />
), you can use the HTML5 placeholder text, working in every modern browser:
<sj:autocompleter placeholder="Select or Type tag ends with" />
This will be totally automatic, and for old browser, you can use feature detection like in this fiddle.
Stop using text for something that is not a text, but an inner label ;)
Autocompleter does not have a placeholder attribute because autocompleter is usually meant for users to input text that fall within a provided list and this list is shown as and when the user types or if the drop down arrow is clicked(if arrow is enabled).
Here is a list of attributes supported by autocompleter.
But if want to do it like that then use the onfocusout event to put the text back if value==""
<sj:autocompleter
cssStyle="width:200px;"
href="%{#autoCompleteTagUrl}"
onSelectTopics="tagsAllSelectTopics"
onCompleteTopics="tagsAllCompleteTopics"
id="tags_all"
name="tags_all"
cssClass="inputText tags_all tag-textbox docTxt"
tooltip="true"
value="Select or Type tag ends with ;"
onfocus="if(this.value=='Select or Type tag ends with;'){this.value='';}"
loadingText="Loading...."
onfocusout="if(this.value==""){this.value='Select or Type tag ends with';}
/>