任务三自己写的,不能运行,关于几个细节,代码中有标出,请帮我看一看,是哪里导致代码不能运行呢?另外,排名最前的代码里,为什么把j当作一个数组来用呢?
function checkone(){
var j=document.getElementById("wb").value;
if(j!=null)//想判断是否有输入
{
var vj=parseInt(j);
clearall();
if(vj<0||vj>6||isNan(j))//判断j是否越界或者是否为数字
{
alert("输入不合法,请重新输入!");
document.getElementById("wb").value=" ";//重新清空输入框
}
else{
hobby[vj-1].checked=true;
}
}
// 任务3
}
function checkone(){ clearall();
var j=document.getElementById("wb").value;
var hobby = document.getElementsByName("hobby");
if(j!=null)//想判断是否有输入
{ var vj=parseInt(j);
if(isNaN(vj))//判断j是否越界或者是否为数字
{alert("输入不合法,请重新输入!"); document.getElementById("wb").value=" ";//重新清空输入框}
else if(vj<=0||vj>6){alert("输入不合法,请重新输入!"); document.getElementById("wb").value=" ";//重新清空输入框 }
else{hobby[vj-1].checked=true; }
}
}
1:hobby为局部变量,只能在函数体内使用,所以要先声明再赋值。
2:个人觉得isNaN()的值是false或者true,跟数值不在一个取值域里面,所以else不起作用。(第二点也不是很明白,我个人的理解,不知道对不对)
value不能直接赋值给变量
var j=document.getElementById("wb");
if(j.value!=null)//想判断是否有输入