function checkone(){
            var j=document.getElementById("wb").value;
            clearall();
            var hobby=document.getElementsByName("hobby");
         // 任务3
         for(var i=0;i<j.length;i++)
            if(j.charAt(i)>6||j.charAt(i)<1)
            {
                alert("请输入1-6");
                document.getElementById("wb").value="";
            }
             hobby[(j.charAt(i))-1].checked=true;
        }
          for(var n=0;n<j.length;n++)
             hobby[(j.charAt(n))-1].checked=true;
        }function checkone(){
            clearall()
            var hobby=document.getElementsByName("hobby");
            var j=document.getElementById("wb").value;
            for(var i=0;i<j.length;i++){
                if(0<j.charAt(i) && j.charAt(i)<7){
                    hobby[(j.charAt(i))-1].checked=true;
                }
                else{
                    alert("越界,请重新输入!");
                    document.getElementById("wb").value="";
                }                
            }
        }这个好使,你的for后面掉了一个 { 括号,
hobby[(j.charAt(i))-1].checked=true; 重复,第二个for可以删除
这里的j已经是一个数了
 for(var i=0;i<j.length;i++)            if(j.charAt(i)>6||j.charAt(i)<1)
            {
                alert("请输入1-6");
                document.getElementById("wb").value="";
            }
             hobby[(j.charAt(i))-1].checked=true;
        }j.length也就没有意义了,其实这样就可以了
function checkone(){
            var j=document.getElementById("wb").value;
        
         // 任务3
        var hobby = document.getElementById("hobby"+j);
        hobby.checked = true;
        }如果还要判断输入框的值的话,就直接用j和0,6比较就可以了
var j=document.getElementById("wb").value; j的值是NULL吧
j.length有吗????