java脚本如下   
function check_userid(){
var o=document.getElementsByName("userid");//getElementsByName
 if(o.value==""){
 alert("id 不能为空");
 return false;
 }
else {
for(var i=0 ;i<o.value.length;i++){
if( (o.value.charAt(i)<"a" ||o.value.charAt(i)>"z" ) && ( o.value.charAt(i)<"A")||o.value.charAt(i)>"Z" )
alert("id只能由字母组成");
break;
}

o.focus;
return false;
}
alert("长度为"+o.value.length);
return true;
}
jsp中表单
<table border="1" align="center"  bordercloor="yellow" >
 <caption>用户注册信息表</caption>
 <tr>
  <td>用户名:</td>
  <td><input type="text" name="userid" onblur="check_userid()"/>  </td><br/>
 </tr>
 <tr>
下面的省略。

解决方案 »

  1.   

    为什么输入为数字的时候,不执行alert("id只能由字母组成")????
    楼主你都输入数字了,还弹出个球?
      

  2.   

    用正则吧if(!(/^[a-zA-Z]+$/).test(o.value)){
       alert("id只能由字母组成");
    }
      

  3.   


    用document.getElementById('') 获取吧  
    getElementsByName 获取的是集合
      

  4.   

    var o=document.getElementsByName("userid");
    if(!(/^[a-zA-Z]+$/).test(o.value)){
      alert("id只能由字母组成");
    }
      

  5.   

    真的是这个问题,谢谢啦!但是不明白的是我的"userid"是唯一的啊,用getElementsByName返回的就不应该是集合啊。
      

  6.   

    getElementsByName是根据标签的name属性来找的 不管id   他始终返回的是一个数组 像你的代码的情况 
    var o=document.getElementsByName("userid");//这个o是一个数组 o[0]才是元素像这种id唯一的元素校验 取元素直接用getElementById('元素id')