深圳市博士通科技有限公司

HTML中禁止自动完成和禁用输入法

2012/10/20 9:04:45   阅读:3895    发布者:3895

 IE提供了一个自动完成功能可以记忆我们的输入内容(如登录帐号等),方便下一次快速地录入类似资料.这确实是一个非常友好的功能, 在操作时只需用鼠标双击文本框或输入前几个字符, 系统会自动列出以前的录入历史供你选择, 大大提高录入速度及准确性. 相信大多数IE的用户都启用了这项功能.
      然而做为网站开发者来说, 并不希望什么资料都记忆在用户的电脑上(如银行帐号和其它重要的帐号及密码), 但是我们又不能要求用户禁用自动完成的功能. 幸好IE5.0后为 INPUT type=password, INPUT type=text, FORM 等控件加入了一个 AUTOCOMPLETE的属性,要禁止控件自动完成功能,只需把AUTOCOMPLETE设为off即可,如:
整个表单禁止自动完成
<FORM method=post action="submit.asp" AUTOCOMPLETE="OFF">
禁止文本框自动完成
<input type="text" name="creditcard" maxlength="16" AUTOCOMPLETE="OFF">
在脚本中禁止自动完成
function init()
{
    element.setAttribute("AutoComplete", "off");
}

另外,如果要禁止文本框使用输入法,可以把在它的样式中添加 ime-mode : disabled 即可,但是这样并不能禁止输入汉字,因为用户还是可以通过复制粘贴输入汉字的.如:
<input type=text style="ime-mode: disabled ; ">

微软的.NET PASSPORT 就是这样实现的,但是因该还会有其它的方法,因为在YAHOO 和 GMAIL的实现方法就不一样。