薛乎乎~ 2024-04-26 18:25 采纳率: 87.5%
浏览 1
已结题

(标签-jquery)

修改下列代码,利用jquery

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>选课</title>
</head>

<body>
    <h1>请选择课程</h1>
    <input type="CHECKBOX" name="sample1" onClick="doCheck(this)">C语言<br>
    <input type="CHECKBOX" name="sample2" onClick="doCheck(this)">机械制图<br>
    <input type="CHECKBOX" name="sample3" onClick="doCheck(this)">单片机<br>
    <input type="CHECKBOX" name="sample4" onClick="doCheck(this)">自动控制<br>
    <input type="CHECKBOX" name="sample5" onClick="doCheck(this)">传感器<br>
    <input type="CHECKBOX" name="sample6" onClick="doCheck(this)">高等数学<br>
    <input type="CHECKBOX" name="sample7" onClick="doCheck(this)">计算机基础<br>
    <input type="CHECKBOX" name="sample8" onClick="doCheck(this)">Oracle数据库<br>
    <input type="CHECKBOX" name="sample9" onClick="doCheck(this)">商务英语<br>
    <input type="CHECKBOX" name="sample10" onClick="doCheck(this)">PLC设计基础
</body>
<style>
    body{
        margin: 50px;
    }
</style>
<script>
    var c = 0, limit = 6;
    function doCheck(obj) {
        obj.checked ? c++ : c--;
        if (c > limit) {
            obj.checked = false;
            alert("您最多可以选择6门课程");
            c--;
        }
    } 
</script>

</html>

  • 写回答

5条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-04-26 18:25
    关注

    引自免费微信小程序:皆我百晓生

    为了将这段HTML和JavaScript代码转换为使用jQuery,我们需要引入jQuery库,并对事件处理进行相应的调整。首先,在<head>部分添加jQuery的CDN链接。然后,我们将使用jQuery来选择元素并绑定点击事件。以下是修改后的代码:

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>选课</title>
        <!-- 引入jQuery CDN -->
        <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
        <script>
            $(document).ready(function () {
                var c = 0, limit = 6;
                
                // 使用jQuery选择所有复选框并绑定click事件
                $('input[type="checkbox"]').on('change', function () {
                    if ($(this).is(':checked')) {
                        c++;
                    } else {
                        c--;
                    }
    
                    if (c > limit) {
                        $(this).prop('checked', false);
                        alert("您最多可以选择6门课程");
                        c--;
                    }
                });
            });
        </script>
    </head>
    
    <body>
        <h1>请选择课程</h1>
        <input type="CHECKBOX" name="sample1">C语言<br>
        <input type="CHECKBOX" name="sample2">机械制图<br>
        <input type="CHECKBOX" name="sample3">单片机<br>
        <input type="CHECKBOX" name="sample4">自动控制<br>
        <input type="CHECKBOX" name="sample5">传感器<br>
        <input type="CHECKBOX" name="sample6">高等数学<br>
        <input type="CHECKBOX" name="sample7">计算机基础<br>
        <input type="CHECKBOX" name="sample8">Oracle数据库<br>
        <input type="CHECKBOX" name="sample9">商务英语<br>
        <input type="CHECKBOX" name="sample10">PLC设计基础
    </body>
    <style>
        body {
            margin: 50px;
        }
    </style>
    </html>
    

    在这个版本中,我做了以下更改:

    1. <head>部分添加了jQuery的CDN链接。
    2. 将原始的onClick事件替换为使用jQuery的on('change', ...)方法,这样可以确保在复选框状态改变时触发事件。
    3. 使用$(this).is(':checked')检查当前复选框是否被选中,而不是直接使用obj.checked
    4. 使用$(this).prop('checked', false)来取消选中复选框,而不是直接设置obj.checked = false

    现在,这个页面应该能正常工作,限制用户最多只能选择6门课程。

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

报告相同问题?

问题事件

  • 系统已结题 5月17日
  • 已采纳回答 5月9日
  • 创建了问题 4月26日

悬赏问题

  • ¥15 mySQL5.7.34安装遇到的问题
  • ¥15 结构功能耦合指标计算
  • ¥20 visual studio中c语言用ODBC链接SQL SERVER
  • ¥50 AI大模型精调(百度千帆、飞浆)
  • ¥15 非科班怎么跑代码?如何导数据和调参
  • ¥15 福州市的全人群死因监测点死亡原因报表
  • ¥15 Altair EDEM中生成一个颗粒,并且各个方向没有初始速度
  • ¥15 系统2008r2 装机配置推荐一下
  • ¥15 悬赏Python-playwright部署在centos7上
  • ¥15 psoc creator软件有没有人能远程安装啊