javascript复选框选中所有

标签 javascript jquery html checkbox

我正在研究一个全选按钮,但我对 javascript 不太熟悉,无法完成这部分。

本质上,我在页面顶部有一个复选框,当您选中它时,它会经过并更改要选中的表的每一行中的复选框。

我环顾了类似的问题,我知道我必须使用

~~~~.prop('checked', ...)

这是我想要选中表中所有框的复选框。

    <div class="disc-opt" style="float:left">
        Adjust All            
        <div class="make-switch">
            <input type="checkbox" class="create-adjustments"  />
        </div>
    </div>

这是表格行布局。

<tr class="<?= $data['adjusted'] ? "success" : "" ?>">
    <td>
       Stuff
    </td>
    <td><?= $data['products_name'] ?></td>
    <td><?= $data['total_final_quantity'] ?></td>
    <td><?= $data['total_onhand'] ?></td>
    <td><?= $data['difference'] ?> </td>
    <td><?= $data['difference_cost'] ?></td>
    <!-- The Checkbox to be changed -->
    <td class = "Adjustbox">
        <?php if(!$data['adjusted']): ?>
            <div class="make-switch">
                <input type="checkbox" name="adjust_products[]"
                                    value="<?= $products_id ?>">
            </div>
        <?php else: ?>
            Adjustment Complete
        <?php endif; ?>
    </td>
</tr>

编辑:这是我目前正在使用的(我不确定这是否真的设置得很差,它来 self 今天之前从未接触过的一堆旧代码)。我也对上面的代码进行了一些修改。

function createAdjustments()
{
    if($("#create-adjustments").is(':checked'))
    {
        //turn all on
    } else {
        //turn all off
    }
}

$('#create-adjustments').change(function(e)
{
    createAdjustments();
});

$('#create-adjustments').trigger('change');

我已经能够通过 document.ready 函数访问表格行中的元素,但是当我选中该复选框时我什么也做不了。

这是我正在尝试做的事情的图片:Checkbox on top left is the one that I want to check to check all in the table.

我试图做到这一点,以便当我选中左上角的复选框时,它会遍历表格并选中右列中的所有复选框。

最佳答案

看看this我早些时候做了类似的事情,这对我有用。基本上,您创建一个包含所有输入框的 div,并说如果单击主要输入框,则将所有输入框标记为已选中。

HTML:

<label><input type="checkbox" name="sample" class="selectall"/> Select all</label>

<div id="checkboxlist">

    <label><input type="checkbox" name="sample[]"/>checkbox1</label><br />
    <label><input type="checkbox" name="sample[]"/>checkbox2</label><br />
    <label><input type="checkbox" name="sample[]"/>checkbox3</label><br />
    <label><input type="checkbox" name="sample[]"/>checkbox4</label><br />

</div>

JavaScript:

$('.selectall').click(function() {
    if ($(this).is(':checked')) {
        $('div input').attr('checked', true);
    } else {
        $('div input').attr('checked', false);
    }
});

关于javascript复选框选中所有,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30764733/

相关文章:

php - 通过 AJAX 调用提示用户保存文件

javascript - 删除百度 map js Api中的标记

javascript - 关闭 "blur"上的表单 -- 有更好的方法吗?

javascript - 在没有滚动条的浏览器中查看长图像的中心

javascript - 如何在javascript中的图像上添加可拖动的文本

javascript - Jquery keypress() 事件没有捕获 Tab 键码

javascript - Meteor 在尝试创建 ObjectID 时返回无效的十六进制字符串错误?

php - htaccess 和变量 _POST

javascript - 如何从 javascript/jquery 中的复选框获取 bool 值?

javascript - 无法在 FB.api 方法中声明任何内容