天天看点

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());
   }                    

实现的效果大概是这样的: 当输入密码和确认密码不一致(提交后台),实现可前台页面可提示错误,又不刷新密码框的值

webform/刷新页面时,怎么阻止password格式的内容被清空?