Kannan Arumugam
Kannan Arumugam

Reputation: 1121

How can I put a placeholder in a struts textfield tag?

i got error because am using placeholder attribute in struts tags....

<html:text property="name" styleClass="form-control" placeholder="some text"/>

how can resolve the problem,pls help me.

Thanks in Advance.

Upvotes: 18

Views: 19574

Answers (6)

Leonardo Archini
Leonardo Archini

Reputation: 1

Similar to something written above in jQuery, you can try with javascript :

<html:text property="name" styleClass="form-control" styleId="myId" />
<script type="text/javascript">
    document.getElementById('myId').setAttribute("placeholder", "my personal placeholder");
</script>   

Upvotes: 0

NEERAJ TANDON
NEERAJ TANDON

Reputation: 1

A simple alternative using javascript event is as follows :

<html:text property="username" value="Username" onclick="this.value=''" />

Upvotes: 0

rajesh kakawat
rajesh kakawat

Reputation: 10896

Use jQuery attr like below:

<html:text property="name" styleClass="form-control" styleId="abc" />

JavaScript code:

$(function() {
    $("#abc").attr("placeholder", "some text");
});

Upvotes: 15

Paul Vargas
Paul Vargas

Reputation: 42040

Just replace:

<html:text property="name" styleClass="form-control" placeholder="some text" />

With:

<input type="text" name="property" class="form-control" placeholder="some text"
                             │
                             └─── Form property ────┐
                                                    │
       value="<bean:write name="name" property="property" />" />
                                  │                
               Name of form-bean ─┘                

The value of the attribute name must match the property of your form to trip in the request.

Upvotes: 9

Jai
Jai

Reputation: 74738

You can try with jQuery to add this attribute when document gets ready:

<html:text property="name" styleClass="form-control" styleId="xyz" />

then try adding this jquery:

$(function(){
    $(':input').each(function(){
       $(this).attr("placeholder", this.id);
    });
});

or this answer could help you.

Upvotes: 1

Saif Asif
Saif Asif

Reputation: 5658

There is a placeholder attribute in struts tags as well called placeholder

<s:form action="Welcome">
  <s:textfield name="username" label="Username" placeholder="Enter Your Name" />
  <s:password name="password" label="Password" placeholder="Password"/>
  <s:submit/>
</s:form>

Edit

There isn't an attribute with the name placeholder (sorry for the confusion), but if you type in placeholder like my code sample, the struts form will be evaluated as below

<form id="Welcome" name="Welcome" action="/User/Welcome.action" method="post">
  <input type="text" name="username" value="" id="Welcome_username" placeholder="Enter your Name">
  <input type="password" name="password" id="Welcome_password" placeholder="Password">
</form>

If you notice, the placeholder attribute renders up just fine with the complete form

Upvotes: 2

Related Questions