修改密码是比较简单的功能,要求如下:
1、原密码必须输入正确,才可以修改密码
2、新密码需在6-18位之间
3、第二次输入的新密码必须与第一次相同。
4、前三个条件同时满足的时,修改密码才能成功,否则显示错误提示信息。
5、错误提示信息和验证信息全部使用ajax提交、响应
效果图如下:
(1)
(2)
(3)
(4)修改成功之后显示提示信息,2秒后自动消失。
HTML代码如下:
<ul class=‘xform-ul‘> <li> <div class=‘form-label‘>Existing password :</div> <div class=‘form-input‘> <input type=‘password‘ id="oldpassword" name="oldpassword"/><div style="display: inline" id="tip1"></div> </div> </li> <li> <div class=‘form-label‘>New password :</div> <div class=‘form-input‘> <input type=‘password‘ id="password1" name="password1" placeholder="length must be 6-18"/><div style="display: inline" id="tip2"> </div> </li> <li> <div class=‘form-label‘>Re-enter password :</div> <div class=‘form-input‘> <input type=‘password‘ id="password2" name="password2" placeholder="must match with the first"/><div style="display: inline" id="tip3"> </div> </li> <li class="text-center"> <div class="btn-submit"><div id="btn">Modify</div></div> </li> <li class="text-center"> <div id="tip4"></div> </li> </ul>
js代码如下:
<script> $(document).ready(function(){ $("#oldpassword").blur(function(){ var param=$("#oldpassword").val(); $.ajax({ url:"${HttpPath}/user/checkoldpassword", data:{oldpassword:param}, success:function(e){ if(e.code==1){ $("#tip1").html("<font color=\"green\" size=\"2\"> Correct</font>"); } else{ $("#tip1").html("<font color=\"red\" size=\"2\"> Wrong</font>"); } } }); }); $("#password1").blur(function(){ var num=$("#password1").val().length; if(num<6){ $("#tip2").html("<font color=\"red\" size=\"2\"> too short</font>"); } else if(num>18){ $("#tip2").html("<font color=\"red\" size=\"2\"> too long</font>"); } else{ $("#tip2").html("<font color=\"green\" size=\"2\"> Accept</font>"); } }) ; $("#password2").blur(function(){ var tmp=$("#password1").val(); var num=$("#password2").val().length; if($("#password2").val()!=tmp){ $("#tip3").html("<font color=\"red\" size=\"2\"> Wrong</font>"); } else{ if(num>=6&&num<=18){ $("#tip3").html("<font color=\"green\" size=\"2\"> Correct</font>"); } else{ $("#tip3").html("<font color=\"red\" size=\"2\"> invalid</font>"); } } }); $("#btn").click(function(){ var flag=true; var old=$("#oldpassword").val(); var pass=$("#password1").val(); var pass2=$("#password2").val(); var num1=$("#password1").val().length; var num2=$("#password2").val().length; if(num1!=num2||num1<6||num2<6||num1>18||num2>18||pass!=pass2){ flag=false; } else{ flag=true; } if(flag){ $.ajax({ url:"${HttpPath}/user/editPassowrdyet", data:{oldpassword:old,password:pass}, success:function(e){ if(e.code==1){ $("#tip4").show().html("<font color=\"green\" size=\"3\"> Edit Success!</font>"); $("#oldpassword").val(""); $("#password1").val(""); $("#password2").val(""); $("#tip1").empty(); $("#tip2").empty(); $("#tip3").empty(); $("#tip4").delay(2000).hide(0); } else{ $("#tip4").show().html("<font color=\"red\" size=\"3\"> OldPassword is Wrong!</font>"); } } }); } else{ $("#tip4").show().html("<font color=\"red\" size=\"3\"> Please follow the tips!</font>"); } }); }); </script>
2秒后自动消失的特效是通过jquery的delay()和hide()函数来实现的,因为是异步验证,不刷新页面,想让他再出现,就要调用show()函数。
另外一个值得注意的是,flag那个标记是非常重要的,只要有不符合要求的输入,就要把flag置为false,阻止用户提交修改。