18

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.

Anupam
  • 7,966
  • 3
  • 41
  • 63
Kannan Arumugam
  • 1,119
  • 2
  • 18
  • 27

5 Answers5

15

Use jQuery attr like below:

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

JavaScript code:

$(function() {
    $("#abc").attr("placeholder", "some text");
});
Paul Vargas
  • 41,222
  • 15
  • 102
  • 148
rajesh kakawat
  • 10,826
  • 1
  • 21
  • 40
9

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.

Paul Vargas
  • 41,222
  • 15
  • 102
  • 148
  • Replacing the struts html tag with normal html tag will result in Struts provided default functionalities(i18n and many more) will be lost. – Ajay Takur Oct 29 '16 at 10:11
1

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

Saif Asif
  • 5,516
  • 3
  • 31
  • 48
1

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.

Community
  • 1
  • 1
Jai
  • 74,255
  • 12
  • 74
  • 103
0

A simple alternative using javascript event is as follows :

<html:text property="username" value="Username" onclick="this.value=''" />
Paresh Mayani
  • 127,700
  • 71
  • 241
  • 295