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

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

        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,就不会有任何复选框勾选改如何做

提问者:秋水流到冰 2016-05-24 17:01

个回答

  • 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;
           }
       }
    }

  • 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;
       }
    }