function validateName(){
$.get(
url,function(msg){
if(msg!=1){
if(name.val().length < 4){
name.addClass("error");
nameInfo.text("请输入3个字节以上的用户名");
nameInfo.addClass("error");
return false;
}
//if it's valid
else{
name.removeClass("error");
nameInfo.text("用户名正确");
nameInfo.removeClass("error");
return true;
}
}else{
name.addClass("error");
nameInfo.text("用户名已存在");
nameInfo.addClass("error");
return false;
}
}
)
}------------------------------------------------------------------------------------------------
这样写可以?
我想得到的结果是,用户名大于3,且用Ajax检验要唯一。

解决方案 »

  1.   

    name.val()
    name.addClass
    nameInfo.removeClass这里面的name,nameInfo你在哪里定义了?如果你想说,name和nameInfo就是用户名输入框的ID和自定义信息的容器的ID。那你使用jQuery,这样子去使用,就肯定不对了
    如果以上两者是ID的话,那
    name就应该是:$('#name')
    nameInfo就应该是:$('#nameInfo')自己去看看jQuery的API吧,最基本的选择器你总是要看的
      

  2.   

    用户名的长度检测,你应该在ajax之前去进行检测
      

  3.   


    这是代码段,前面以var 声明过了。var name=$('#name')了。
      

  4.   

    //if it's valid
    else{
    name.removeClass("error");
    nameInfo.text("用户名正确");
    nameInfo.removeClass("error");
    //alert('aaa');
    return true;
    //alert('bbb');
    }
    新问题来了,这里不能返回true!
    //alert('aaa');去注释,这里可以弹出。
    //alert('bbb');去注释,这里不弹出,为什么啊?求回复
      

  5.   

    长度检测没通过,就不用进入ajax验证唯一性呀ajax异步执行的话,你的return没有意义了,起不了作用你ajax中要执行验证的部份应该是在后台程序中或者是数据库里面。已经存在的就不添加就是了要么你将ajax改为同步[async:false]。要么将长度检测单独出来,然后唯一性检测完全交给后台,在添加入库时在数据中进行判断。前台想要做个唯一性检测的话,你可以绑定在这个输入框的onblur事件中,但即便是这样,你后台或数据库中的那一步判断仍然是必不可少的。你只是在前台可以尽可能的得到一个友好点的提示而已。