接上一节。
虽然基本完成了验证功能,但是,仍然存在一些问题,比如:
虽然用户名可用,但是这是不合法的,这种情况就不行。
我们需要修改两处,一是EmployeeController.java
代码语言:javascript复制 //检查用户名是否可用
@ResponseBody
@RequestMapping("/checkuser")
public Msg checkUser(String empName) {
String regx = "(^[a-zA-Z0-9_-]{6,16}$)|(^[u2E80-u9FFF]{2,5})";
if(!empName.matches(regx)) {
return Msg.fail().add("va_msg", "用户名必须是6-16位英文或2-5位中文");
}else {
boolean b = employeeService.checkUser(empName);
if(b) {
return Msg.success();
}else {
return Msg.fail().add("va_msg", "用户名不可用");
}
}
}
这里我们在检查用户是否可用之前先检查合法性,同时将错误信息都保存在va_msg中,报哪个错就选哪个错误信息。
在add.js中:
代码语言:javascript复制$("#empName_add_input").change(function(){
//$("#empName_add_input").empty();
var empName = this.value;
$.ajax({
url:"/curd_ssm/checkuser",
data:"empName=" empName,
type:"POST",
success:function(result){
if(result.code == 100){
show_validate_msg("#empName_add_input","success","用户名可用");
$("#emp_save").attr("ajx-va","success");
}else{
show_validate_msg("#empName_add_input","error",result.extend.va_msg);
$("#emp_save").attr("ajx-va","error");
}
}
});
});
将该函数中的错误信息改为从后台传过来的数据中获取。
此时:
会根据不同错误返回不同错误信息。