2011-12-23 90 views
5

我们有一个成熟的应用程序处理敏感数据,并已增长到数百页和控件。现在需要为整个应用程序中的所有表单和文本框设置autocomplete = off。我不相信会有这样的全局web.config设置,那么最好的方法是什么?我最初的想法是使用PageBase类(所有页面从中继承)来动态查找所有Form和TextBox控件,并动态添加属性autocomplete =“off”。这看起来合理吗?还是有更好的办法?感谢您的任何建议。如何为ASP.NET应用程序全局设置autocomplete = off?

回答

5

如果您的所有页面都有母版页,请尝试在母版页中使用Jquery禁用输入控件的自动完成功能。

可以

$(document).ready(function() { $("input").attr("autocomplete", "off"); }); 
+0

不幸的是,我们没有使用母版页,而是使用大量嵌入式ascx控件的aspx页面集合。 – 2011-12-23 15:58:29

+1

@SolidPerformer:然后将它放在一个用处无处不在的用户控件上。漂亮的ASP.NET 1.x,但它的工作回来了。 – XIII 2011-12-23 16:17:33

+0

母版页......就像MVC中的共享页面一样吗?我有共享页面,其他页面从中继承属性。我应该只在共享页面中列出该行吗? – 2013-11-04 17:02:50

3

尝试增加自动完成=“关闭”将下面的代码在母版页,只是你的表单元素,而不是每一个控制。至少在IE中,这应该关闭表单中的所有控件。

是的,如果由于某种原因您无法使用母版页,继承是实现您想要的合理方式。

+0

在表单元素上使用autocomplete =“off”在Firefox 11中工作。 – 2012-04-24 22:01:41

7

始终尝试使用它从一个BasePageinherits所有页面,这是一个good practice,它有助于后期大量的当项目逐渐成为monster .....在这种情况下,如果你已经做了的话..这是one line code ...

public abstract class BasePage : Page 
{ 
    protected override void OnLoad(EventArgs e) 
    { 
     //Handling autocomplete issue generically 
     if (this.Form != null) 
     { 
      this.Form.Attributes.Add("autocomplete", "off"); 
     } 

     base.OnLoad(e); 
    } 
} 
+0

+1表示服务器端版本。 – Cesar 2014-03-25 20:09:50

1

如果您正在使用MVC,然后在视图/共享,将它添加到您的_Layout.csstml 正如帕说:

$(document).ready(function() 
{ 
    $("input").attr("autocomplete", "off"); 
}); 

如果你想要一些控件WO rk,有些则不用:

$("#myInputboxName").attr("autocomplete", "off"); 

myInputboxName是您称为控件ID的名称。

相关问题