估计是提示问题的改变,会引起页面刷新。原因可能是服务器有处理这一事件的代码。
如果问题改变事件需要和服务器交换数据,建议使用Ajax技术。
如果不需要,但需要处理这个事件,建议使用JavaScript在浏览器上处理,而不是在服务器端。
不是很懂 我改变提示问题 没做也不需做任何事件处理啊 为什么页面刷新 其他文本框没变 就密码框变为空了呢 我以为是密码框问题
@小柑: 其他文本框没变,是因为刷新时,服务器段帮你填上去的。密码框空了,是因为安全方面的考虑,不会把之前的内容填上去。
在你的下拉框控件中,把 AutoPostBack="True",改为:AutoPostBack="False"。看下能解决你的问题不
你的下拉框用的服务器控件么
不懂
是服务器控件吧?
<tr><td align="right">提示问题:</td>
<td align="left" colspan="2"><asp:DropDownList ID="DDLQuestion" runat="server" Font-Size="12px" Width="140px" AutoPostBack="True">
<asp:ListItem Selected="True" Value="1">你的小学老师是?</asp:ListItem>
<asp:ListItem Value="2">你最好的朋友是?</asp:ListItem>
<asp:ListItem Value="3">你父亲的生日是?</asp:ListItem>
<asp:ListItem Value="4">你母亲的生日是?</asp:ListItem>
<asp:ListItem>密码</asp:ListItem>
</asp:DropDownList></td></tr>
密码文本框
<tr>
<td align="right">密 码:</td>
<td align="left"><input type="password" name="textfield" id="UserPwdOne" clientidmode="Static" onkeyup="CheckPwdOne()" runat="server" /></td>
<td align="left">密码只能有6-15位的数字、字母或下划线组成<asp:RequiredFieldValidator ID="RequiredFieldValidator4" runat="server"
ControlToValidate="UserPwdOne" ErrorMessage="必填"></asp:RequiredFieldValidator>
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ControlToValidate="UserPwdOne" ErrorMessage="格式不对!"
ValidationExpression="[\w]{6,15}"></asp:RegularExpressionValidator>
</td>
</tr>
<tr>
<td> </td>
<td align="left"><span style="color:#FF0000;" runat="server" clientidmode="Static" id="RoundPwdOne">*</span></td>
<td> </td>
</tr>
<tr>
<td align="right">确认密码:</td>
<td align="left"><input type="password" name="textfield" id="UserPwdTwo" clientidmode="Static" runat="server" onkeyup="CheckPwdTwo()" /></td>
<td align="left">两次输入的密码必须一致<asp:RequiredFieldValidator ID="RequiredFieldValidator5" runat="server"
ControlToValidate="UserPwdTwo" ErrorMessage="必填"></asp:RequiredFieldValidator>
<asp:CompareValidator ID="CompareValidator1" runat="server" ControlToCompare="UserPwdOne" ControlToValidate="UserPwdTwo"
ErrorMessage="两次输入不一致"></asp:CompareValidator></td>
</tr>
@小柑: <asp:DropDownList ID="DDLQuestion" runat="server" Font-Size="12px" Width="140px" AutoPostBack="True"> 如果你这个没有事件操作,将AutoPostBack="True" 改为False
@大傻蛋啊: 嗯 好 谢谢
密码输入框变空肯定是你刷新了页面导致的,有两种解决办法:
1.用ajax提交各种操作,不要刷新页面;
2.如果非得刷新页面,就得在刷新页面后再给密码文本框把值赋回去,不过密码文本框不能直接复制,如果是服务器控件需要使用AddAttribute方法来给value属性赋值。
@大傻蛋啊: 嗯 好 谢谢
密码框不会在postback的时候保留值
PageLoad 中可以 this.txtPass.Attributes.Add("value", Request["txtPwd"]); //txtPass 是密码框ID
哦 好 谢谢
isPostBack 回传了。 DropDownList [ AutoPostBack="true" 你开启了吧,关闭就可以不回传了]
可以使用viewSate保存
嗯 好 谢谢