【问题标题】:Button Checkboxes do not save checked按钮复选框不保存选中
【发布时间】:2016-01-05 06:46:47
【问题描述】:

我正在使用引导程序,并试图将复选框转换为一个按钮,该按钮显示何时按下或不按下(选中与否)。如果我保留显示复选框的代码,它会完美运行。如果我将代码保留为带标签的按钮,则“已检查”按钮无法正确加载(它们会保存)。

已解决: 事实证明,我只需要为已经激活的复选框回显“btn-group active”。

带复选框的复选框代码(有效)

<div class="btn-group" id="salesman" data-toggle="buttons"></div>
<h5>Salesman :</h5>
<?php
        $salesman = json_decode($invoice['Invoice']['salesman'], true);
        $salesman_names = array(1 => "User1",2 => "User2",3 => "User3",4 => "User4",5 => "User5");
            foreach ($salesman_names AS $i => $name) {
                if ($salesman[$name] == "checked") {
                    echo '<label class="btn btn-default"><input type="checkbox" name="data-invoice-salesman[]" value="'.$i.'" checked/>&nbsp;&nbsp;'.$name.'</label>';
                } else {
                    echo '<label class="btn btn-default"><input type="checkbox" name="data-invoice-salesman[]" value="'.$i.'" />&nbsp;&nbsp;'.$name.'</label>';
                }
            }       
        ?>

不带复选框的复选框代码(需要修复?)

   <div class="btn-group" id="salesman" data-toggle="buttons">
<h5>Salesman :</h5>
<?php
        $salesman = json_decode($invoice['Invoice']['salesman'], true);
        $salesman_names = array(1 => "User1",2 => "User2",3 => "User3",4 => "User4",5 => "User5");
            foreach ($salesman_names AS $i => $name) {
                if ($salesman[$name] == "checked") {
                    echo '<label class="btn btn-default"><input type="checkbox" name="data-invoice-salesman[]" value="'.$i.'" checked/>&nbsp;&nbsp;'.$name.'</label>';
                } else {
                    echo '<label class="btn btn-default"><input type="checkbox" name="data-invoice-salesman[]" value="'.$i.'" />&nbsp;&nbsp;'.$name.'</label>';
                }
            }       
        ?>

【问题讨论】:

  • 有点困惑。您从复选框更改为按钮,然后尝试测试按钮是否被“选中”?
  • 因此,如果“按下”按钮,我希望复选框状态显示“已选中”,并保存相应的数据。我还希望能够重新加载表单,并根据需要“选中”复选框(即按钮)拉起视觉状态
  • 按钮没有被“选中”。这对他们来说不是一个有效的状态。您如何尝试保留此信息?我想我应该确保我理解。当您说“按钮”时,您是指按钮还是单选按钮?
  • 一个实际的按钮,有没有办法“隐藏”复选框,并通过 javascript 或其他方式将数据从按钮传递给它?
  • 哦,有复选框和按钮吗?

标签: javascript jquery twitter-bootstrap checkbox


【解决方案1】:

我认为您搜索的是切换按钮,请查看下面的示例。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link href="https://netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://netdna.bootstrapcdn.com/bootstrap/3.0.0/js/bootstrap.min.js"></script>

<div class="btn-group" data-toggle="buttons">
  <label class="btn btn-default active">
    <input type="checkbox" checked autocomplete="off"> Checkbox 1 (pre-checked)
  </label>
  <label class="btn btn-default">
    <input type="checkbox" autocomplete="off"> Checkbox 2
  </label>
  <label class="btn btn-default">
    <input type="checkbox" autocomplete="off"> Checkbox 3
  </label>
</div>

【讨论】:

    【解决方案2】:

    据我所知,您希望将标签的点击链接到复选框的切换(可能被隐藏)。

    <label for="me">
        Blah1
        <input type="checkbox" id="me">
    </label>
    

    【讨论】:

    • 这已经用上面的代码实现了。它链接并保存,但是当我加载表单时,链接的标签无法正确显示
    • 无法正常显示是什么意思?您是否已验证它正确地将选中的属性附加到它之前选中的复选框?
    • 这是附加选中属性的代码:
    • if ($salesman[$name] == "checked") { echo '';
    • 那是代码,但实际结果是什么? html是对的吗?如果不是,那么这可能表明出了问题。
    猜你喜欢
    • 1970-01-01
    • 2015-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-30
    • 1970-01-01
    • 2014-12-16
    相关资源
    最近更新 更多