我正在开发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,没有任何作用
此字段中克隆的其他字段也没有问题。
答案 0 :(得分:0)
我认为问题根本不在这个文本框中。 Firefox在表单中检测到用户名/密码时所说的内容如下:
您是否想记住&#34; userName&#34;的密码?在http:// ...
所以,很可能你在你的表单中有一个文本框,它呈现html,如:
<input id="tbpwd" type="password" >
它必须位于上面提到的&#34; InputStu1LastName&#34;之后,因此愚弄Firefox认为它包含用户名。在代码隐藏中,它将具有
TextMode="Password"
要防止Firefox在这种情况下尝试使用,请添加属性:
AutoCompleteType="Disabled"
代码隐藏中有问题的文本框。