薛乎乎~ 2024-04-26 17:43 采纳率: 81%
浏览 1
已结题

(标签-JQuery|关键词-js代码)

修改js代码利用JQuery

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>限制选择课程的个数</title>
    <script type="text/javascript">
        window.onload = function(){//页面所有元素加载完毕
            var btn = document.getElementById("btn");  //获取id为btn的元素(button)
            btn.onclick = function(){                   //给元素添加onclick事件
                var arrays = new Array();              //创建一个数组对象,把选中的对象添加到数组中
                var items = document.getElementsByName("check");  //获取name为check的一组元素(checkbox)
                for(var i=0; i < items.length; i++){  //循环这组数据
                    if(items[i].checked){      //判断是否选中
                        arrays.push(items[i].value); //把符合条件的 添加到数组中. push()向数组末尾添加数据
                    }
                }
                if(arrays.length>6){//判断选中课程的个数
                    alert("您最多可以选择6门课程")
                }
            }
        }
        </script>
</head>
<body>
    <form method="post" action="#">
        <input type="checkbox"name="check"value="1">C语言<br>
        <input type="checkbox"name="check"value="2">机械制图<br>
        <input type="checkbox"name="check"value="3">单片机<br>
        <input type="checkbox"name="check"value="4">自动控制<br>
        <input type="checkbox"name="check"value="5">传感器<br>
        <input type="checkbox"name="check"value="6">高等数学<br>
        <input type="checkbox"name="check"value="7">计算机基础<br>
        <input type="checkbox"name="check"value="8">Oracle数据库<br>
        <input type="checkbox"name="check"value="9">商务英语<br>
        <input type="checkbox"name="check"value="10">PLC设计基础<br>
        <input type="submit" value="提交" id="btn"/>
    </form>
</body>
</html> 


  • 写回答

3条回答 默认 最新

  • 专家-赤兔[在线] 优质创作者: 编程框架技术领域 2024-04-26 17:43
    关注

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

    在提供的HTML和JavaScript代码中,已经实现了一个简单的功能:当用户点击提交按钮时,会检查选中的课程数量是否超过6门,若超过则弹出提示框。

    为了使用jQuery来改进这段代码,首先需要引入jQuery库。确保在<head>部分加入以下代码来引用jQuery(假设我们使用的是CDN上的最新版本):

    <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
    

    接下来,我们可以将原始的JavaScript代码转换为jQuery语法。将原有的window.onload函数内的内容替换为以下jQuery代码:

    <script type="text/javascript">
    $(document).ready(function(){
        $("#btn").on("click", function(event){
            event.preventDefault(); // 阻止表单默认提交行为
    
            var selectedCourses = []; // 创建一个空数组来存储选中的课程值
            
            $("input[name='check']:checked").each(function(index, element) {
                selectedCourses.push($(element).val());
            });
    
            if(selectedCourses.length > 6) {
                alert("您最多可以选择6门课程");
            } else {
                // 如果选中的课程数量不超过6门,可以在这里处理表单提交或其他操作
                console.log("已选择的课程:" + selectedCourses.join(", "));
                $(this).closest("form").submit();
            }
        });
    });
    </script>
    

    这样,我们就成功地使用了jQuery来实现相同的功能,并且代码更加简洁易读。在这个版本中,我们使用了$("#btn").on("click", ...)来替代原生的DOM事件监听,使用$("input[name='check']:checked")来选择所有被选中的复选框,以及each()方法遍历这些复选框并收集它们的值。此外,还添加了阻止表单默认提交的行为,以便在满足条件后手动提交表单。

    请注意,我已经将代码中的注释进行了相应的调整,以适应jQuery的语法和逻辑。将上述代码片段替换掉原始的JavaScript代码即可。

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

报告相同问题?

问题事件

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