话不多说直接上代码
HTML部分
<div class="pwdForm">
<div class="class-pwd-title">修改密码</div>
<div class="class-pwd-table">
<div class="class-input-line">
<label>原密码:</label>
<input type="password" class="easyui-validatebox oldPassWord"
data-options="required:true,missingMessage:'不能为空'" maxlength="32" minlength="8">
</div>
<div class="class-input-line">
<label>新密码:</label>
<input type="password" class="easyui-validatebox newPassWord"
data-options="required:true,missingMessage:'不能为空'" maxlength="32" minlength="8">
</div>
<div class="class-input-line">
<label>安全级别:</label>
<span class="PwdStrength"></span>
</div>
<div class="class-input-line">
<label>确认密码:</label>
<input type="password" class="easyui-validatebox surePassWord"
data-options="required:true,missingMessage:'不能为空'" maxlength="32" minlength="8">
</div>
<div class="class-input-line" style="display: none" id="tooltip">
<label>提示消息:</label>
<span id="tooltipIfo" style="color:red;width: 150px;">
</span>
</div>
</div>
<div id="pwdtip" class="class-pwd-tip">
<h4 style="margin:10px 0;">密码提示:</h4>
长度为8-20个字符,支持数字,大小写字母和特殊字符且不允许有空格。
</div>
<div style="clear: both"></div>
<div class="surePassWordBtn" id="password-button">
<a href="#" iconCls="icon-vfp-save" id="sure-button" class="class-btn class-btn-sure">确定</a>
<a href="#" iconCls="icon-vfp-save" id="id-return-button" class="class-btn class-btn-return">返回</a>
</div>
</div>
js部分
$(function(){
$("body").keydown(function (event) {
if (event.which == 13) {
$("#sure-button").click();
}
});
//返回按钮
$("#id-return-button").on("click",function(){
self.location = "/loginbfp.html";
});
$.ajax({
url: '/user/getSessionUser',
async: 'false',
type: 'get',
dataType: 'json',
success: function (data) {
if (data.code == 0) {
passWordClcik();//修改密码点击事件
newKeyup();//新密码键盘事件
username = data.result.username;
}
}
});
});
var username;
var checkNum;//校验密码强度返回值
//修改密码点击事件
function passWordClcik() {
//确定按钮
$('#sure-button').on('click', function () {
var newPassWord = $('.newPassWord').val();
var oldPassWord = $('.oldPassWord').val();
var surePassWord = $('.surePassWord').val();
var regPwd = /^\S+$/gi;
if (newPassWord != surePassWord || surePassWord == "" || newPassWord == "" || oldPassWord == "") {
if (surePassWord == "" || newPassWord == "" || oldPassWord == "") {
$('#tooltip').show();
$('#tooltipIfo').html("输入不能为空!");
} else if (newPassWord != surePassWord) {
$('#tooltip').show();
$('#tooltipIfo').html("密码输入不一致!");
}
} else if (checkNum == 0) {
$('#tooltip').show();
$('#tooltipIfo').html("安全等级过低!");
} else if (regPwd.test(surePassWord) != true) {
$('#tooltip').show();
$('#tooltipIfo').html("密码中不能包含空格!");
} else if (surePassWord.length < 8 || surePassWord.length > 20) {
$('#tooltip').show();
$('#tooltipIfo').html("密码长度长度有误!");
} else if (surePassWord == oldPassWord) {
$('#tooltip').show();
$('#tooltipIfo').html("新密码不可与原密码相同!");
} else {
resetPwd(hex_sha256(oldPassWord), hex_sha256(newPassWord));
}
});
}
//新密码键盘事件
function newKeyup() {
$(".newPassWord").keyup(function () {
var newPassWord = $('.newPassWord').val();
var oldPassWord = $('.oldPassWord').val();
checkNum = passCheckout(newPassWord, oldPassWord);
if (checkNum == 0) {
$('.PwdStrength').text('风险')
} else if (checkNum == 1) {
$('.PwdStrength').text('弱');
} else if (checkNum == 2) {
$('.PwdStrength').text('中');
} else {
$('.PwdStrength').text('强')
}
});
}
//密码强度检测
function passCheckout(newPwd, user) {
var iRank = 0;
newPwd.match(/[a-z]/g) && iRank++;
newPwd.match(/[A-Z]/g) && iRank++;
newPwd.match(/[0-9]/g) && iRank++;
newPwd.match(/[^a-zA-Z0-9-z]/g) && iRank++;
iRank = (iRank > 3 ? 3 : iRank);
if (newPwd.length < 8 || iRank === 1 || newPwd === user || newPwd == user.split("").reverse().join("")) {
iRank = 0;
}
if (iRank === 2) {
if ((newPwd.match(/[0-9]/g) && newPwd.match(/[a-z]/g)) || (newPwd.match(/[0-9]/g) && newPwd.match(/[A-Z]/g))) {
iRank = 1;
}
}
return iRank;
}
//修改密码
function resetPwd(oldPassWord, newPassWord) {
$.ajax({
url: '/user/updatePassword.whtml',
type: 'post',
dataType: 'json',
data: {
B: oldPassWord,
A: newPassWord
},
success: function (data) {
if (data.code == 0) {
$.messager.show({
title: '提示消息',
msg: '修改成功,即将退出到登录页面!',
timeout: 1500,
showType: 'slide'
});
$('#passWordPanel').dialog("close");
$('#tooltip').hide();
sessionStorage.clear();
localStorage.clear();
setTimeout(function () {
self.location = "/loginbfp.html";
}, 1500)
} else {
$('#tooltip').show();
$('#tooltipIfo').text(data.message);
}
}
});
}