2014-01-07 23 views
0

我想防止在登录时保存用户名和密码。过去我使用了autocomplete =“off”,但在Explorer 11中这不起作用。根据这里给出的答案我总结了以下代码:如何防止在Explorer 11中保存密码?

<script type="text/javascript"> 
    function LoginPrep() { 
     var txtUserName = document.getElementById('<%= LoginControl.FindControl("UserName").ClientID %>'); 
     var txtPassword = document.getElementById('<%= LoginControl.FindControl("Password").ClientID %>'); 
     var hdUserNm = document.getElementById("hdUserNm"); 
     var hdPasswrd = document.getElementById("hdPasswrd"); 
     hdPasswrd.Value = txtPassword.Value; 
     hdUserNm.Value = txtUserName.Value; 
     txtUserName.Value = ''; 
     txtPassword.Value = ''; 
    } 
</script> 

这个功能是通过登录按钮的OnClientClick事件本身的日志被称为是由处理按钮的单击事件,而不是内置的在从hdPasswrd和hdUserNm输入隐藏字段的登录控制函数中。登录工作,但你想保存密码信息仍然显示,如果我按是保存它。为什么这不起作用?

编辑: 我做了调试,看到隐藏字段没有收到UserName和Password文本框中的值,并且仍然填充了登录控件UserName和Password。怎么了?

回答

0

问题是control.Value与国会大厦五我改变它与价值与小v,我收到的价值。这很奇怪,因为国会大厦V受到了VS 2010 intellisense的欢迎。

解决了这个问题,但是因为我在使用asp.net登录控件时,文本框变为空白,回发没有发生。由于我使用模板和自己的按钮以及我自己的身份验证,所以我确实不需要登录控件,因此我没有登录控件就完成了,现在它不会显示保存密码消息,也不会保存或自动完成。

我最后的JavaScript代码:

function LoginPrep() { 
     var txtUserName = document.getElementById('<%= UserName.ClientID %>'); 
     var txtPassword = document.getElementById('<%= Password.ClientID %>'); 
     var hdUserNm = document.getElementById("hdUserNm"); 
     var hdPasswrd = document.getElementById("hdPasswrd"); 
     hdPasswrd.value = txtPassword.value; 
     hdUserNm.value = txtUserName.value; 
     txtUserName.value = ''; 
     txtPassword.value = ''; 
      }