如何禁用Struts标记的自动完成(HTML:text)

时间:2013-12-02 07:22:12

标签: struts

对于普通的HTML输入标记,禁用自动完成很简单,如下所示:

<input type="email" name="email" autocomplete="off">

虽然它不适用于下面给出的Struts标签:

<html:text property="" styleId="Field" maxlength="4" size="4" tabindex="14" 
    onblur="check(this);" value="" />

如何禁用Struts标记的自动完成功能?

5 个答案:

答案 0 :(得分:1)

自动填充属性不会通过标记传递给呈现的HTML。

您可以通过编写自己的自定义标记来扩展标记以接受自动完成属性并将其传递给渲染标记。

检查这些链接::

Struts 2 + Disable Form Autocomplete

http://www.coderanch.com/t/54020/Struts/form-input-tags-turning-autocomplete

答案 1 :(得分:0)

我遇到了同样的问题。编辑tld属性对我没有帮助。我通过JavaScript代码添加属性解决了这个问题。这是一个例子:

<bean:define id="autoComplete" scope="request" type="java.lang.String"
    value="<%=String.valueOf(ApplicationConfiguration.getAutoComplete()) %>" />

<script>
    var ttip;
    var ttip2;
    Ext.onReady(function() {
        var form = document.forms['formName'];
        var elem = form.elements["passortField"];
        elem.setAttribute( "autocomplete", "${autoComplete}" );

ApplicationConfiguration.getAutoComplete() - 返回onoff,具体取决于应用配置

答案 2 :(得分:0)

您可以使用redisplay="false"中的struts-html作为自动填充的等效内容。

答案 3 :(得分:0)

另一种选择是编写你自己的TextTag类,如下所示:

public class TextTagNoAutoComplete extends BaseFieldTag {
    public TextTagNoAutoComplete() {
         super();
         this.type = "text";
         doReadonly = true;
    }
    protected void prepareOtherAttributes(StringBuffer handlers) {
         prepareAttribute(handlers, "autocomplete", "false");
    }
}

并在你的tld映射中将textnac指向此类! ..和中提琴!不是最好的可重用代码。如果Struts 1.x绝不会被重新考虑,那么这种排序猴子修补在我看来是绰绰有余的:)

答案 4 :(得分:0)

我们可以使用<htm-text>内部\&#34;

中不支持的属性
<html:text property="userName" styleId="firstname\" placeholder=\"Email*\" 
           autocomplete=\"off" styleClass="ql-inpt"  readonly="true" />