本人是菜鸟,想用Jquery来判断昵称是否被占用(用户信息保存在数据库中),由于没有导师,在这里求助各位大虾帮忙!
代码如下:
$(function(){
$("#txtNickName").blur(function(){
flag.nickname=false;
var reg=/[u4e00-\u9fa5A-Za-z-0-9-_]*/;
var nickname=$("#txtNickName").val();
flag.nickname=reg.test(nickname);//匹配昵称是否包含非法字符
//昵称为空
if(nickname==""){
$("#name\\.info").html("<img src='../images/wrong.gif'/>昵称不能为空!");
return;
//昵称不为空
}else if(nickname.toString().length<=3||nickname.toString().length>20){
$("#name\\.info").html("<img src='../images/wrong.gif'/>昵称长度4-20个字符,一个汉字为两个字符!");
return;
}else{
//匹配正则表达式
if(flag.nickname==true){
//ajax检测
$("#name\\.info").html("<img src='../images/window_loading.gif'/>正在检测...");
$.post( "/dangdang05.2/check.servlet",
{'nickname':nickname},
function(data){
alert(data); if(data){ //问题在这里,不管data为false还是true,他都只执行if,else不执行,求解 $("#name\\.info").html("<img src='../images/wrong.gif'/>昵称已被占用!");
}else{
$("#name\\.info").html("<img src='../images/right.gif'/>昵称可用!");
}
}
);
//不匹配正则表达式
}else{
$("#name\\.info").html("<img src='../images/wrong.gif'/>您的昵称包含非法字符,请重新输入");
}
}
});
});
代码如下:
$(function(){
$("#txtNickName").blur(function(){
flag.nickname=false;
var reg=/[u4e00-\u9fa5A-Za-z-0-9-_]*/;
var nickname=$("#txtNickName").val();
flag.nickname=reg.test(nickname);//匹配昵称是否包含非法字符
//昵称为空
if(nickname==""){
$("#name\\.info").html("<img src='../images/wrong.gif'/>昵称不能为空!");
return;
//昵称不为空
}else if(nickname.toString().length<=3||nickname.toString().length>20){
$("#name\\.info").html("<img src='../images/wrong.gif'/>昵称长度4-20个字符,一个汉字为两个字符!");
return;
}else{
//匹配正则表达式
if(flag.nickname==true){
//ajax检测
$("#name\\.info").html("<img src='../images/window_loading.gif'/>正在检测...");
$.post( "/dangdang05.2/check.servlet",
{'nickname':nickname},
function(data){
alert(data); if(data){ //问题在这里,不管data为false还是true,他都只执行if,else不执行,求解 $("#name\\.info").html("<img src='../images/wrong.gif'/>昵称已被占用!");
}else{
$("#name\\.info").html("<img src='../images/right.gif'/>昵称可用!");
}
}
);
//不匹配正则表达式
}else{
$("#name\\.info").html("<img src='../images/wrong.gif'/>您的昵称包含非法字符,请重新输入");
}
}
});
});
解决方案 »
- 调用Webservice 急求。。。。
- 求助 Cannot forward after response has been committed 给个正确的修改方法
- 严重: Exception starting filter struts2问题解决
- 请高手指点:Webservice与ejb的相同点,不同点
- MessageResources 读取properties文件
- urlrewrite实现伪静态问题
- Ecplics不能建webproject
- 请问得到 数据集后 如何获得 有多少条记录??
- 如何屏蔽输入文本框中的历史记录?在线等...
- 帮帮忙吧,嗯,不过我没有分数了,一个数据库的简单问题!
- 各位大哥、大姐。高手们 都进来来帮帮忙吧、 小弟感激不尽。
- jsp中用ajax传参,乱码
代码如下:
public class CheckNickName extends HttpServlet{
public void service(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException{
request.setCharacterEncoding("utf-8");
PrintWriter out = response.getWriter();
response.setContentType("text/html;charset=utf-8");
String nickname = request.getParameter("nickname");
UserDao dao = new UserDaoImpl();
boolean result;
try {
result = dao.checkNickName(nickname);
System.out.println("service()~~~~ result:"+result);
out.println(result);
} catch (Exception e) {
e.printStackTrace();
}
out.close();
}
}
纠结好久了
dao中checkNickName(nickname);返回的是boolean类型:
如果检测到与昵称相同就返回true,否则返回false,
一下是代码(是不是哪里逻辑有问题):
public boolean checkNickName(String nickname) throws Exception {
String sql = "select*from t_user where nickname=?";
User user = new User();
Connection con = DBUtil.open();
PreparedStatement prep = con.prepareStatement(sql);
prep.setString(1, nickname);
ResultSet rs = prep.executeQuery();
if(rs.next()){
user.setNickname(nickname);
}
DBUtil.close(con);
if(user.getNickname() != null){
return true;
}else {
return false;
}
}
$.post( "/dangdang05.2/check.servlet",
{'nickname':nickname},
function(data){
var s = data+"";
if(s){
alert('s:'+s);
$("#name\\.info").html("<img src='../images/wrong.gif'/>昵称已被占用!");
flag.nickname=false;
}else{
$("#name\\.info").html("<img src='../images/right.gif'/>昵称可用!");
}
}
);
不管是boolean类型的false,还是String类型的"false",都只执行if里面的语句……
{'nickname':nickname},
function(data){
var s = data+"";
if(s=='true'){
alert('s:'+s);
$("#name\\.info").html("<img src='../images/wrong.gif'/>昵称已被占用!");
flag.nickname=false;
}else{
$("#name\\.info").html("<img src='../images/right.gif'/>昵称可用!");
}
}
);
if(s=='true'){
alert('s:'+s);
$("#name\\.info").html("<img src='../images/wrong.gif'/>昵称已被占用!");
flag.nickname=false;
}else{
$("#name\\.info").html("<img src='../images/right.gif'/>昵称可用!");
}
不管s=='true'还是s=='false'它都只执行else里面的语句。
ps:那个回调函数返回的是Servlet中的out.println(result);或者是jsp中的<%=result %>吗?
alert(data);
data = true; //data=false;
if(data){ //问题在这里,不管data为false还是true,他都只执行if,else不执行,求解 看下是不是还是只执行一种