webform/刷新页面时,怎么阻止password格式的内容被清空?
最近在做WebForm页面的textBox的password格式(密码框),发现一个问题,刷新页面时,会清空密码框中的值。
问题原因:为了安全考虑及webForm请求机制原因,导致刷新不保存密码框输入的值
那么如何解决清空的问题呢?
首先我们有一个aspx页面,一个密码框、一个密码隐藏域
<label for="txtUserPwd">密码</label> <asp:TextBox ID="txtUserPwd" runat="server" CssClass="form-control" TabIndex="2" TextMode="Password" OnTextChanged="txtUserPwd_TextChanged" ></asp:TextBox> <asp:HiddenField ID="hidUserPwd" runat="server" />
在aspx后台处理页面的txtUserPwd_TextChanged保存输入的密码值
/// <summary> /// 用户确认密码必填验证 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void txtResetPwd_TextChanged(object sender, EventArgs e) { if (this.txtConfirmUserPwd.Text.Length > 0) {//设置隐藏确认重置密码框字段的值 this.hidConfirmUserPwd.Value = this.txtConfirmUserPwd.Text.Trim(); } else { } }
然后的aspx页面使用js将隐藏域的值赋给密码框(页面记得引入jquery文件)
//获取隐藏用户密码框值(刷新后密码框无法显示) if ($('#hidUserPwd').val().length > 0) { $('#txtUserPwd').val($('#hidUserPwd').val()); }
实现的效果大概是这样的: 当输入密码和确认密码不一致(提交后台),实现可前台页面可提示错误,又不刷新密码框的值
注意:未加隐藏域时,密码和确认密码输入框的值会消息,如下图
平时多记记,到用时才能看看,记录你的进步,分享你的成果