"选择所有"由Foreach循环检索的值的复选框

时间:2017-12-13 04:53:06

标签: php jquery checkbox

我正在尝试从多种形式传递值。

参考:Check all/uncheck all in foreach loop

我已经在SO中查看了一个非常有用的帖子,它允许我使用SELECT ALL复选框发送值进行处理。

我的值是从控制器中的SQL查询生成的,因此我使用下面的代码:

             <div class="col" id="one">
              <fieldset>
                <form action="{$link->getLink('controller')|escape:'htmlall':'utf-8'}" method="post"> 
                    <p>
                      <input name="ALL" type="checkbox" id="check-all2" value="checkbox" onclick="CheckAll()" />
                      <label>SELECT ALL</label>
                       <br/><br/>
                       {foreach from=$payment item=row}
                       <input type="checkbox" name="payment[]" maxlength="50" value={$row.id_order} class="payment">
                       <label> ID: <b>{$row.id_order}</b></label><br/>
                       {/foreach}
                       <br/>
                      <input id="submit" name="submitpayment" type="submit" value="PACK ITEMS" class="button" />
                    </p>
                  </form>
                </fieldset>
            </div>

jQuery:

  function CheckAll() {
var elements = document.getElementsByName("payment");
var l = elements.length;

if (document.getElementById("check-all2").checked) {
    for (var i = 0; i < l; i++) {
        elements[i].checked = true;
    }
} else {
    for (var i = 0; i < l; i++) {
        elements[i].checked = false;
    }
}

}

目前这对我有用,遗憾的是我不确定如何为多种表单创建。

1 个答案:

答案 0 :(得分:1)

试试这个:

function CheckAll(className, elem) {
        var elements = document.getElementsByClassName(className);
        var l = elements.length;

        if (elem.checked) {
            for (var i = 0; i < l; i++) {
                elements[i].checked = true;
            }
        } else {
            for (var i = 0; i < l; i++) {
                elements[i].checked = false;
            }
        }
    }
<label>Select all 1</label>
<input type="checkbox" onclick="CheckAll('box1', this)" />

<h2>check boxes</h2>
<input type="checkbox" class="box1" />
<input type="checkbox" class="box1" />
<input type="checkbox" class="box1" />

<hr>

<label>Select all 2</label>
<input type="checkbox" onclick="CheckAll('box2', this)" />

<h2>check boxes</h2>
<input type="checkbox" class="box2" />
<input type="checkbox" class="box2" />
<input type="checkbox" class="box2" />