嘻二 2022-11-04 10:45 采纳率: 16.7%
浏览 130
已结题

js和表单的交互问题

想创建一个表单,根据学生成绩输出学生成绩等级,其中要运用js和html的内容。代码如下:

 <!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">    
    </head>
    <script language="javascript" type="text/javascript">

        
        function gradelevel(input){
            var input;
            var msgE=document.getElementById('msg');
            var b;
            score=Number(input)
            // if (score == 60){
            //     document.write("成绩不及格!");
            // } else{
            //     document.write("成绩及格!");
            // }
            b=score/10;
            lint=Math.floor(b);
            
            switch(lint){
                case 0:
                case 1:
                case 2:
                case 3:
                case 4:
                case 5:
                    msgE.innerHTML='成绩不及格!';
                    
                    break;
                case 6:
                    msgE.innerHTML='成绩及格!';
                    
                    break;
                case 7:
                    msgE.innerHTML='成绩中等!';
                    
                    break;
                case 8:
                    msgE.innerHTML='成绩良好!';
                    
                    break;
                case 9:
                case 10:
                    msgE.innerHTML='成绩优秀!';
                    
                    break;
                


            }
        }

        function validate(){
             return gradelevel();
        }
     


    </script>
    <body>
        <p>请输入成绩:</p>
        <form action="SY3_1.html" method="get" onsubmit="return validate(document.getElementById(grade))" >
            <input type="text" id="grade" value='' onblur="return validate(document.getElementById(grade))">
            
            <button type="submit" >提交</button>  
            <p>成绩等级为:</p>
            <span id="msg"></span>  

        </form>
    </body>

</html>
 


运行结果及报错内容

输入成绩后,没有返回值。

我的解答思路和尝试过的方法

感觉是在JS变量 的那块出现了问题,但具体的也不太清楚

我想要达到的结果

在点击“提交”按钮后,可以在最后一栏出现成绩等级的结果。

  • 写回答

12条回答 默认 最新

  • 夜郎king 2022博客之星IT其它领域TOP 12 2022-11-04 11:12
    关注

    把方法给你改了一下,主要是input不从外面传进来了,直接在方法中获取,见以下代码:

    function gradelevel(){
                var msgE=document.getElementById('msg');
                var input = document.getElementById('grade').value;
                var b;
                score=Number(input)
                // if (score == 60){
                //     document.write("成绩不及格!");
                // } else{
                //     document.write("成绩及格!");
                // }
                b=score/10;
                lint=Math.floor(b);
                
                switch(lint){
                    case 0:
                    case 1:
                    case 2:
                    case 3:
                    case 4:
                    case 5:
                        msgE.innerHTML='成绩不及格!';
                        break;
                    case 6:
                        msgE.innerHTML='成绩及格!';
                        break;
                    case 7:
                        msgE.innerHTML='成绩中等!';
                        break;
                    case 8:
                        msgE.innerHTML='成绩良好!';
                        break;
                    case 9:
                    case 10:
                        msgE.innerHTML='成绩优秀!';
                        break;
                }
            }
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(11条)

报告相同问题?

问题事件

  • 系统已结题 11月12日
  • 已采纳回答 11月4日
  • 创建了问题 11月4日

悬赏问题

  • ¥15 我想在一个软件里添加一个优惠弹窗,应该怎么写代码
  • ¥15 fluent的在模拟压强时使用希望得到一些建议
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
  • ¥15 模糊pid与pid仿真结果几乎一样
  • ¥15 java的GUI的运用
  • ¥15 Web.config连不上数据库
  • ¥15 我想付费需要AKM公司DSP开发资料及相关开发。
  • ¥15 怎么配置广告联盟瀑布流