【问题标题】:How to disable autocomplete for Struts tags(HTML:text)如何禁用 Struts 标签的自动完成功能(HTML:文本)
【发布时间】:2019-09-10 21:59:36
【问题描述】:

对于普通的 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 标签的自动完成功能?

【问题讨论】:

  • 什么版本的 Struts?您始终可以修改 TLD 以允许动态属性通过 IIRC,尽管我认为它已经这样做了。我不记得了,因为 S1 现在已经很老了。

标签: struts


【解决方案1】:

标签不会将自动完成属性传递给呈现的 HTML。

您可以通过编写自己的自定义标签来实现这一点,该标签扩展标签以接受自动完成属性并将其传递给呈现的标签。

检查这些链接::

Struts 2 + Disable Form Autocomplete

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

【讨论】:

    【解决方案2】:

    我遇到了同样的问题。编辑 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,具体取决于应用程序配置

    【讨论】:

      【解决方案3】:

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

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

      并将 textnac 指向您的 tld 映射中的此类! ..还有中提琴!不是最好的可重用代码。如果 Struts 1.x 绝不会被重新审视,那么在我看来,这个 sortta Monkey 修补就绰绰有余了:)

      【讨论】:

        【解决方案4】:

        您可以使用redisplay="false",它与struts-html 中的等价物用于自动完成。

        【讨论】:

          【解决方案5】:

          我们可以使用\"里面&lt;htm-text&gt;不支持的属性

          <html:text property="userName" styleId="firstname\" placeholder=\"Email*\" 
                     autocomplete=\"off" styleClass="ql-inpt"  readonly="true" />   
          

          【讨论】:

            猜你喜欢
            • 2014-08-07
            • 1970-01-01
            • 1970-01-01
            • 2018-10-25
            • 1970-01-01
            • 1970-01-01
            • 2014-03-12
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多