请教一个关于任务三的问题

来源:9-4 区别getElementByID,getElementsByName,getElementsByTagName

秋水流到冰

2016-05-24 17:01

        function checkone(){

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

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

            for(var i=0;i<j.length;i++){

                if(parseInt(j.charAt(i))>6){

                alert("选择1-6的数");

                break;

                }

                

                for(var k=0;i<j.length;k++){

                hobby[parseInt(j.charAt(k))-1].checked=true;    

                }

            }

这个代码,我如果在文本框中输入“8”,会弹出警告,如果我输入“128”,虽然会弹出警告,但依然会勾选第一个和第二个复选框,我如果希望只要有一个数字超出6,就不会有任何复选框勾选改如何做

写回答 关注

2回答

  • kuban
    2016-05-25 15:08:04
    已采纳

    function checkone() {
       var j = document.getElementById("wb").value;
       var hobby = document.getElementsByName("hobby");
       var str = j.split("");
       function sortnum(a,b){return b-a;}
       str.sort(sortnum);
       if(str[0]>6){alert("选择1-6的数");}
       else{
           for(var i=0;i<str.length;i++)
           {
               hobby[str[i]].checked=true;
           }
       }
    }

    慕粉3274... 回复kuban

    那也足够了,先谢谢了。

    2016-07-21 14:46:39

    共 10 条回复 >

  • kuban
    2016-05-24 17:30:36

    不知道你为什么要使用charAt(),不用就好了

    function checkone() {
       var j = document.getElementById("wb").value;
       var hobby = document.getElementsByName("hobby");
       for (var i = 0; i < j.length; i++) {
           if (parseInt(j) > 6) {
               alert("选择1-6的数");
               break;
           }
           hobby[parseInt(j) - 1].checked = true;
       }
    }

    kuban 回复秋水流到冰

    想法很有意思,按照你的想法重新看了你代码给我看蒙了,不知道你有没有发现,你代码目前实现的效果是碰巧借助了报错停止实现了正确效果的,128可选12,812呢?肯定不会选12,因为报错了,其实128也报错了,只不过执行完了正确选择才报错停止的。按你想法改动的正确代码下面给你贴出来

    2016-05-25 15:07:44

    共 2 条回复 >

JavaScript进阶篇

本课程从如何插入JS代码开始,带您进入网页动态交互世界

468194 学习 · 21891 问题

查看课程

相似问题