Home » Html » How can I put a placeholder in a struts textfield tag?

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

Posted by: admin December 28, 2017 Leave a comment

Questions:

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.

Answers:

Use jQuery attr like below:

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

JavaScript code:

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

Questions:
Answers:

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.

Questions:
Answers:

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

Questions:
Answers:

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.

Questions:
Answers:

A simple alternative using javascript event is as follows :

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