如何在Struts的文本框标签中添加占位符?

18

我因在struts标签中使用了placeholder属性而出现错误...

<html:text property="name" styleClass="form-control" placeholder="一些文本"/>

我该如何解决这个问题,请帮助我。

提前感谢。


1
在 Struts 中没有占位符标签,请使用 HTML5 的输入类型标签代替。 - dev
你写得很好,@Purnendu。 - user2860053
@KannanPriya 你可以使用简单的HTML。不需要添加任何额外的东西。 - Paul Vargas
或者工具提示也可能是一个解决方案。 <html:text property="name" styleClass="form-control" title="一些文本"/> - Chris311
6个回答

15

使用 jQuery 的 attr,如下所示:

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

JavaScript 代码:

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

9

只需替换:

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

使用:

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

属性name的值必须与你的表单中的trip属性匹配,以便在请求中传输。


将Struts HTML标签替换为普通HTML标签将导致丢失Struts提供的默认功能(如i18n等)。 - Ajay Takur

1

在Struts标签中也有一个名为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>

编辑

没有名为“placeholder”的属性(对于混淆表示抱歉),但是如果您像我的代码示例中一样输入“placeholder”,则struts表单将被评估如下:

<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>

如果您注意到,占位符属性在完整表单中会正常呈现。

1
当文档准备就绪时,您可以尝试使用jQuery添加此属性:
<html:text property="name" styleClass="form-control" styleId="xyz" />

然后尝试添加这个 jQuery:
$(function(){
    $(':input').each(function(){
       $(this).attr("placeholder", this.id);
    });
});

或者 这个答案可能会对你有所帮助。

0
一个使用JavaScript事件的简单替代方法如下:
<html:text property="username" value="Username" onclick="this.value=''" />

0
类似于上面用jQuery写的内容,你可以尝试使用JavaScript:
<html:text property="name" styleClass="form-control" styleId="myId" />
<script type="text/javascript">
    document.getElementById('myId').setAttribute("placeholder", "my personal placeholder");
</script>   

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接