You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET6重置密码时jQuery验证缓存旧密码致匹配错误的解决

.NET6重置密码jQuery验证规则缓存问题解决方法

问题核心是jQuery Validate插件会缓存表单初始的验证规则,当密码验证逻辑从「确认旧密码」切换为「确认新密码」时,旧的equalTo关联规则未更新,导致验证逻辑错误。以下是具体解决步骤:

  • 销毁现有验证实例
    在后端返回「需使用新密码」的提示后,先清除表单已绑定的旧验证规则:

    // 替换为你的表单实际ID
    $('#resetPasswordForm').validate().destroy();
    
  • 重新绑定新的验证规则
    销毁旧规则后,重新初始化验证,确保确认密码的校验目标指向新密码输入框:

    $('#resetPasswordForm').validate({
        rules: {
            Email: {
                required: true,
                email: true
            },
            NewPassword: {
                required: true,
                minlength: 6 // 匹配你的ResetPasswordViewModel验证规则
            },
            ConfirmPassword: {
                required: true,
                equalTo: '#NewPassword' // 关联新密码输入框ID
            }
        },
        messages: {
            Email: {
                required: '请输入邮箱',
                email: '请输入有效的邮箱地址'
            },
            NewPassword: {
                required: '请输入新密码',
                minlength: '密码长度不能少于6位'
            },
            ConfirmPassword: {
                required: '请确认新密码',
                equalTo: '密码与确认密码不匹配'
            }
        },
        submitHandler: function(form) {
            form.submit();
        }
    });
    
  • 触发字段即时验证
    若需要让用户输入时立即生效,可手动触发新密码和确认密码字段的重验证:

    $('#NewPassword, #ConfirmPassword').valid();
    

额外注意:如果重置密码的分部视图是动态渲染的,需确保每次视图加载完成后都执行上述验证初始化逻辑,避免依赖页面首次加载时的绑定。

内容的提问来源于stack exchange,提问作者Viktor Bylbas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 11:17:47