很抱歉打扰您一个简单的问题,但是我到处都是,似乎无法找出正确的语法来完成我想做的事情。

基本上,我有一个带有大量复选框的表单,并希望允许用户同时选中所有复选框(或取消选中所有复选框)

我遇到了这个很棒的剧本

    $(function () {
    $('.checkall').click(function () {
        $(this).parents('fieldset:eq(0)').find(':checkbox').attr('checked', this.checked);
    });
});


但是,当我尝试设置输入按钮的onclick事件来运行脚本时,什么也没发生。

<input type="button" class="blkbuttonsmall" value="Toggle All/None" onclick="**what-do-i-use-here-to-run?**">


任何帮助将非常感激!

编辑

因此,我昨晚尝试了两个答案,但均未成功。我不确定我是否仍在做错事,如果我这边出现通信错误。因此,这是我尝试失败的不同方法,以及有关页面设置方式的更多信息。

复选框和输入按钮都有各自的类,我正在使用它们来设置外观样式。在考虑运行此脚本之前,必须对它们进行编码。

全选按钮

<input type="button" class="blkbuttonsmall" value="Toggle All/None">


复选框

<input type="checkbox" name="X" id="X" class="formcheck">


因此,现在我考虑了昨晚提供的建议(再次感谢大家的迅速答复),我尝试了
将“全选按钮”的类更改为“ blkbuttonsmall checkall”和“ checkall”。如果这样做不起作用,我尝试将“ checkall”类应用于某些复选框,删除“ formcheck”类并添加“ checkall”类。依然没有。这使我相信我一定不能正确地实现事情,或者第一次我的问题没有正确解释。

在尝试任何建议的修改之前,这是我的代码的一些HTML代码段。

表格的左div:

<div class="formleft">
<br />
    <form action="">
        <span class="formtext">Check all that apply</span>
<br />
<br />
    <script>
    $(function () {
    $('.checkall').click(function () {
    $(this).parents('fieldset:eq(0)').find(':checkbox').attr('checked', this.checked);
    });
    });
    </script>
        <fieldset>
        <input type="checkbox" name="logincheck" id="logincheck" class="formcheck"> login
        <br />
        <input type="checkbox" name="assignbreakbusylogoutcheck"  id="assignbreakbusylogoutcheck" class="formcheck"> assignment, break, busy, logout
        <br />
        <input type="checkbox" name="acceptprocesscallscheck" id="acceptprocesscallscheck" class="formcheck"> accept/process tasks, calls
        <br />
</div>


...
表格的正确div

<div class="formright">
<br />
<!-- when button is clicked we need to toggle all checks on or off -->
        <input type="button" class="blkbuttonsmall" value="Toggle All/None">
<br />
        <input type="checkbox" name="userprofilecheck" id="userprofilecheck" class="formcheck"> user profile
<br />
        <input type="checkbox" name="searchcheck" id="searchcheck" class="formcheck"> search
<br />
        <input type="checkbox" name="addcheck" id="addcheck" class="formcheck"> add
<br />
        <input type="checkbox" name="editcheck" id="editcheck" class="formcheck"> edit
        </fieldset>
     </form>
</div>


并且只是为了确保我不是捣乱jquery声明的庞然大物,这里是文件的标题:

<head>
    <meta charset="utf-8">
    <title>web portal configurations</title>

       <link rel="icon" href="images/favicon.ico" type="image/x-ico">
       <link rel="stylesheet" type="text/css" href="css/style.css">
       <script type="text/javascript" src="js/jquery.js"></script>
       <meta name="viewport" content="width=device-width, initial-scale=.5, maximum-scale=1">
</head>


jQuery文件是jquery站点上提供的最新的最小版本,仅本地上传到我的服务器。

我在这里想念或做错了什么?我了解先前响应的概念,因此问题必须是我错过的事情或实施过程。再次感谢您提供的任何帮助!

最佳答案

您无需在此放置任何内容,只需将类'checkall'添加到输入中。因此,您应该具有以下内容:

<input type="button" class="blkbuttonsmall checkall" value="Toggle All/None">


原因是'.checkall'中的jQuery选择器$('.checkall')查找所有类为'checkall'的元素,然后将您指定的函数附加到该元素。

关于jquery - 如何在onclick上运行此脚本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14530988/

10-12 04:18