<input class="form-control" name="nick" id="nickName" placeholder="昵称" value="${user.nick }">
$("#nickName").blur(function(){ // 失去焦点事件
// 验证昵称的唯一性
checkNick ();
}).focus(function(){ // 聚焦事件
// 清空提示信息
$("#msg").html("");
// 禁用提交按钮
$("#btn").prop("disabled",true);
// 提交按钮可用
//$("#btn").prop("disabled",false);
});
// 验证昵称的唯一性
function checkNick () {
// 1、得到昵称文本框的值
var nickName = $("#nickName").val();
// 2、判断昵称是否为空
if (isEmpty(nickName)) {
// 设置字体颜色
$("#msg").css("color","red");
// 为空,提示信息
$("#msg").html("* 用户昵称不能为空!");
// 禁用提交按钮
$("#btn").prop("disabled",true);
return;
}
// 清空文本信息
$("#msg").html("");
// 3、发送ajax请求,验证昵称的唯一性
$.ajax({
url:"user",
type:"get",
data:{action:"checkNick",nickName:nickName},
success:function(result){
// 提示信息
$("#msg").html(result.msg);
if (result.code == 1) {
// 设置提示信息的颜色
$("#msg").css("color","green");
// 按钮可用
$("#btn").prop("disabled",false);
} else {
// 设置提示信息的颜色
$("#msg").css("color","red");
// 按钮禁用
$("#btn").prop("disabled",true);
}
}
});
}
Servlet层
else if ("checkNick".equals(action)) {
//验证昵称唯一性
checkNick(request,response);
}
private void checkNick(HttpServletRequest request,
HttpServletResponse response) throws IOException {
//1.从session作用域中获取用户对象,得到用户ID
User user = (User)request.getSession().getAttribute("user");
Integer userId = user.getUserId();
//2.接收参数
String nickName = request.getParameter("nickName");
//3.调用service层,返回resultInfo对象
ResultInfo<User> resultInfo = userService.checkNick(userId, nickName);
//4.将resultInfo对象转换成JSON串,响应给ajax的回调函数
JsonUtil.toJson(resultInfo, response);
}
userService层: 传递了userId和nickName
public ResultInfo<User> checkNick(Integer userId,String nickName) {
ResultInfo<User> resultInfo = new ResultInfo<User>();
//1.判断昵称是否为空
if(StringUtil.isEmpty(nickName)){
//空 code=0,msg用户昵称不能为空 返回resultInfo对象
resultInfo.setCode(0);
resultInfo.setMsg("用户昵称不能为空");
return resultInfo;
}
//2.调用Dao层,查询用户昵称是否被占用,返回user对象
User user = userDao.findUserByNick( userId, nickName);
//3.如果user对象存在
if (user != null) {
resultInfo.setCode(0);
resultInfo.setMsg("用户昵称已存在,不可使用");
}else{
resultInfo.setCode(1);
resultInfo.setMsg("用户昵称可用");
}
return resultInfo;
}
userDao层
public User findUserByNick(Integer userId,String nickName){
User user = null;
Connection connection = null;
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
try {
//1.得到数据库连接
connection = DBUtil.getConnection();
//2.写sql语句
String sql = "select * from tb_user where nick = ? and userId != ?";
//3.预编译
preparedStatement = connection.prepareStatement(sql);
//4.设置参数,下标从1开始
preparedStatement.setString(1, nickName);
preparedStatement.setInt(2, userId);
//5.执行查询,返回结果集
resultSet = preparedStatement.executeQuery();
//6.分析结果集,得到user对象
if (resultSet.next()) {
user = new User();
user.setHead(resultSet.getString("head"));
user.setMood(resultSet.getString("mood"));
user.setNick(resultSet.getString("nick"));
user.setUname(resultSet.getString("uname"));
user.setUpwd(resultSet.getString("upwd"));
user.setUserId(resultSet.getInt("userId"));
}
} catch (Exception e) {
e.printStackTrace();
}finally{
//关闭
DBUtil.close(resultSet, preparedStatement, connection);
}
return user;
}