function checkuser(){
var id = document.getElementById("id").value;
Service.selectByAccount(id,function(result){
if(result>0){
document.getElementById("div1").innerHTML = "用户已经存在";
}else{
document.getElementById("div1").innerHTML = "可以注册";
}
});
}我想通过dwr来实现在注册页面输入用户名后立即显示用户名是否比注册了。
但是运行时,如果输入数字的话,就能实现即时查询,显示用户名是否比注册,但是如果输入非数字(英文)的话,就会弹出一个错误的提示窗口,那个错误的提示窗口什么都没有,只是提示一个ERROR
请问一下,我在回调是,能传非数字,就是英文字符的吗?

解决方案 »

  1.   

     if(result>0)
    这里做判断了 就不能传回非数字的结果了吧
      

  2.   

    result是我程序代码里面写的是int型,所以才是用这个来判断
      

  3.   


    假如result为aaa的话,那就是if(“aaa”>0)
      

  4.   

    result是我程序中的代码,里面是一个查询语句,查询此用户名的数量(用count(*)所以返回的是1,或者0)所以result返回的只是1或者0
    但是现在我要问的是怎样将用户填写的用户名传到程序中,因为现在我填写英文就不能传到程序中,输入的是数字就能实现到实时的查询的功能
      

  5.   

    是不是你的selectByAccount这个方法在后台定义的参数是int型的?
      

  6.   

    我的selectByAccount方法定义的参数是String id
    但是输入了英文之后,根本不能到我的程序中就给弹出了窗口了
      

  7.   

    那肯定是Service.selectByAccount的问题了..里面程序的问题是不是里面有句SQL语句  如:String sql="select * from jobs where id ="+id+""
    如果数据库中字段id为String 类型,你传的id为String 的话,为数字可能还没问题..非数字肯定出错..
    改成:String sql="select * from jobs where id ='"+id+""' 这样就好了..
      

  8.   


    String sql="select * from jobs where id ='"+id+"' 
      

  9.   

    首先非数字判断应该让js来实现,不应该让函数再去判断
    至于是否被注册
    简单的方法:
    selectByAccount这个函数直接返回string类型即可。
      

  10.   

    你们还是不明白,现在的问题是
    我输入完用户名后,用户名不能比传到servlet里面去,一输入完就报错了
    用户名:<input type="text" name="id" id="id" onblur="checkuser()"/>
    我的程序中的servlet是获取id,然后通过id来查询是否有这个人存在,有就返回1,没有就返回0
      

  11.   


    var id = eval(document.getElementById("id").value);试试..
    怎么会有这么奇怪的事?
      

  12.   

    你在获得这个id时判断一下时候是数字function checkuser(){
       var id = document.getElementById("id").value;
       //加判断
       if(id是数字){
        Service.selectByAccount(id,function(result){
         if(result>0){
             document.getElementById("div1").innerHTML = "用户已经存在";
         }else{    
             document.getElementById("div1").innerHTML = "可以注册";
         }
        });
       }else{
        alert("请输入数字,谢谢");
       }}
      

  13.   

    楼主犯了一个禁忌,用"id"来命名输入框和变量,而且两个相同
    虽然不能保证是不是这个问题
    建议先换个名字,比如var i = document.getElementById("tid").value;