使用jquery检查所有复选框

时间:2011-02-24 16:23:15

标签: jquery html function input checkbox

$(document).ready(function(){
    function set_checked {
        alert('test'); 
        $('*:checkbox').attr('checked', checked);
    }
}); 

这个HTML

<input onclick="set_checked()" value="Check all" type="button" />

由于某种原因不起作用。没有警报框或没有。

8 个答案:

答案 0 :(得分:4)

你有一些问题,

  • set_checked函数定义
  • 中缺少括号
  • 未定义的变量checked
  • onclick引用不是真正全局的全局函数

使用jQuery,最好使用jQuery click方法将click事件添加到元素中。 以下是如何使用jQuery正确执行此操作。

$(document).ready(function(){
    // If you want to use the `set_checked` function elsewhere do this
    function set_checked() {
        $('*:checked').attr('checked', true);
    }
    $('#check_all').click(set_checked);

    // If you are only doing `set_checked` on the button press do this
    $('#check_all').click(function() {
        $('*:checked').attr('checked', true);
    });
});

<input id="check_all" value="Check all" type="button"/>

答案 1 :(得分:3)

$('*:checkbox').attr('checked', checked);

可能正在解决

$('*:checkbox').attr('checked', undefined);

你应该

$('*:checkbox').attr('checked', 'checked');

答案 2 :(得分:2)

尝试:

function set_checked() {
        alert('test'); 
        $('*:checkbox').attr('checked', 'checked');
    }

您忘记了()

编辑:正如下面所说,检查必须是一个字符串。

答案 3 :(得分:0)

制作你的javascript函数:

function set_checked() {
    alert('test');
    $('input:checkbox').attr('checked', 'checked'); 
}

您的功能未正确定义,因为它缺少名称定义中的括号。

编辑:错过了已检查属性的引号。也使选择器更加明确。

答案 4 :(得分:0)

您没有正确创建该功能。您需要在()set_checked之间添加{

答案 5 :(得分:0)

旁注:没有理由将您的功能放在$(document).ready();内,这是必须在启动时运行的东西。

<强>更新

我将举一个你想在全方位做jQuery风格的例子。

HTML:

<p><input id='test' type='submit' value='Click me' onclick='checkAll();' /></p>
<p>Let's see:</p>
<ul>
    <li><input type='checkbox'></li>
    <li><input type='checkbox'></li>
    <li><input type='checkbox'></li>
</ul>

JavaScript的:

$(document).ready(function () {
    $('#test').click(function (event) {
        $('input[type="checkbox"]').attr('checked', 'checked');
    });
});

您可以对其进行测试here

答案 6 :(得分:0)

替换整个示例代码:

  $(document).ready(function(){
    function set_checked {
        alert('test'); 
        $('*:checkbox').attr('checked', checked);
    }
 }); 

使用:

function set_checked() {
    alert('test'); 
    $('*:checkbox').attr('checked', 'checked');
}

正如其他人所提到的,你需要你的函数定义上的()和'checked'的引号,但是你还需要在全局范围内定义的函数,所以不要在jquery onready处理程序中。

答案 7 :(得分:0)

您在函数内部定义了set_checked函数,这意味着它不在全局范围内,并且无法通过输入点击事件进行访问。