为什么Firefox要求你记得非密码文本框的密码?

时间:2014-02-24 17:02:44

标签: asp.net google-chrome firefox

我正在开发ASP.Net 4.0应用程序。在一个Web表单上,有许多输入框。

其中一个输入框有以下

<asp:TextBox ID="InputStu1LastName" runat="server"   OnTextChanged="InputStu1LastName_TextChanged"  AutoPostBack="true" AutoCompleteType="None"  TextMode="SingleLine"  ></asp:TextBox>

我将其部署到驻留在我的计算机上的Web服务器上,以便其他人可以在部署之前进行测试。

当我点击提交按钮时,Firefox总是问我

“你想记住这台机器上的密码abcd吗?”

abcd实际上是我在InputStu1LastName字段上输入的输入值

我理解文本框的默认TextMode是SingleLine。在原状上,我甚至没有那个。由于Firefox一直认为它是一个密码文本框,所以我添加了这个atrirbute,我仍然收到了这条消息。

我用萤火虫进行故障排除,但我找不到任何东西。检查器指示器只是另一个常规文本框,但不是密码输入字段 我甚至将代码改为喜欢这个

<asp:TextBox ID="InputStu1LastName" runat="server"   ></asp:TextBox>

我仍然收到消息

这是Firefox认为它是密码字段的唯一文本字段

我还有其他字段,例如InputStu2LastName,InputStu3LastName等。有趣的是它们都是从InputStu1LastName克隆的

当我的老板在他的机器上测试我的应用程序时,使用Chrome,它预先填充了用户名。 Chrome认为该字段是用户名字段

帮助解决问题的任何技巧?

感谢您的任何提示。

这是渲染后的html标记

<input name="ctl00$ContentPlaceHolder1$InputStu1LastName" maxlength="50" onchange="javascript:setTimeout('__doPostBack(\'ctl00$ContentPlaceHolder1$InputStu1LastName\',\'\')', 0)" onkeypress="if (WebForm_TextBoxKeyHandler(event) == false) return false;" id="ctl00_ContentPlaceHolder1_InputStu1LastName" class="validate[required]" type="text">

就像我之前说过的,我做了很多事情,比如删除了类名,事件和maxlength,没有任何作用

此字段中克隆的其他字段也没有问题。

1 个答案:

答案 0 :(得分:0)

我认为问题根本不在这个文本框中。 Firefox在表单中检测到用户名/密码时所说的内容如下:

  

您是否想记住&#34; userName&#34;的密码?在http:// ...

所以,很可能你在你的表单中有一个文本框,它呈现html,如:

<input id="tbpwd" type="password" >

它必须位于上面提到的&#34; InputStu1LastName&#34;之后,因此愚弄Firefox认为它包含用户名。在代码隐藏中,它将具有

TextMode="Password"

要防止Firefox在这种情况下尝试使用,请添加属性:

 AutoCompleteType="Disabled"

代码隐藏中有问题的文本框。