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

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

 

 注意:未加隐藏域时,密码和确认密码输入框的值会消息,如下图

 

posted @ 2021-09-09 15:44  小小邪  阅读(247)  评论(0编辑  收藏  举报