问答详情
源自:9-4 区别getElementByID,getElementsByName,getElementsByTagName

可以使用isNaN判断输入值的合法性

<!DOCTYPE HTML>

<html>

<head>

    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">

    <title>无标题文档</title>

</head>


<body>

    <div style="box-shadow:2px 2px 11px purple;padding:20px;">

      请选择你爱好:<br>

      <input type="checkbox" name="hobby" id="hobby1">  音乐

      <input type="checkbox" name="hobby" id="hobby2">  登山

      <input type="checkbox" name="hobby" id="hobby3">  游泳

      <input type="checkbox" name="hobby" id="hobby4">  阅读

      <input type="checkbox" name="hobby" id="hobby5">  打球

      <input type="checkbox" name="hobby" id="hobby6">  跑步 <br>

      <input type="button" value = "全选" onclick = "checkall();">

      <input type="button" value = "全不选" onclick = "clearall();">

      <p>请输入您要选择爱好的序号,序号为1-6:</p>

      <input id="wb" name="wb" type="text" >

      <input name="ok" type="button" value="确定" onclick = "checkone();">

    </div>

<script>

function checkall(){ // 全选

// 使用getElementsByTagName()获得复选框节点集

var hobby = document.getElementsByTagName("input");

for(let i=0;i<hobby.length;i++){

hobby[i].checked=true;

}

}

function clearall(){ // 全不选

// 使用getElementsByName()获得复选框节点集

var hobby=document.getElementsByName("hobby");

for(let i=0;i<hobby.length;i++){

hobby[i].checked=false;

}

}

function checkone(){ // 只选一个

clearall(); // 先清空

var hobby=document.getElementsByName("hobby");

// 使用getElementById()获得输入框ID,并转换为数字

var j=parseInt(document.getElementById("wb").value);

//alert(typeof(j));用于测试文本框值的类型

// 判断输入值是否合法

if(!isNaN(j)&&j<=6&&j>=1){

hobby[j-1].checked=true;

}else{

alert("非法数字,请重新输入!");

document.getElementById("wb").value="";

}

}

</script>

</body>

</html>


提问者:慕圣3571134 2018-11-23 11:30

个回答

  • 湫谷Sama
    2019-09-29 16:05:23

    这里isNaN是单纯为了判断是不是为数字嘛?那,你输入英文,他也不存在大于小于关系,会不会也可以非法鸭