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
请问一下,我在回调是,能传非数字,就是英文字符的吗?
这里做判断了 就不能传回非数字的结果了吧
假如result为aaa的话,那就是if(“aaa”>0)
但是现在我要问的是怎样将用户填写的用户名传到程序中,因为现在我填写英文就不能传到程序中,输入的是数字就能实现到实时的查询的功能
但是输入了英文之后,根本不能到我的程序中就给弹出了窗口了
如果数据库中字段id为String 类型,你传的id为String 的话,为数字可能还没问题..非数字肯定出错..
改成:String sql="select * from jobs where id ='"+id+""' 这样就好了..
String sql="select * from jobs where id ='"+id+"'
至于是否被注册
简单的方法:
selectByAccount这个函数直接返回string类型即可。
我输入完用户名后,用户名不能比传到servlet里面去,一输入完就报错了
用户名:<input type="text" name="id" id="id" onblur="checkuser()"/>
我的程序中的servlet是获取id,然后通过id来查询是否有这个人存在,有就返回1,没有就返回0
var id = eval(document.getElementById("id").value);试试..
怎么会有这么奇怪的事?
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("请输入数字,谢谢");
}}
虽然不能保证是不是这个问题
建议先换个名字,比如var i = document.getElementById("tid").value;