【问题标题】:I want the first checkbox to be autochecked when any of the other checkox are checked我希望在选中任何其他复选框时自动选中第一个复选框
【发布时间】:2021-03-10 20:10:35
【问题描述】:
<div class="form-group row">
                <div class="col-xs-10">
                    <h5 style="margin-bottom: 12px;">@lang('admin.roles.pages')</h5>
                </div>
                <div class="col-xs-12">
                    <div class="col-xs-2">
                        <?php
                        $page_view = check_permission('pagelist', $id);
                        ?>
                        <input <?php if ($page_view == 1) {
                                    echo 'checked=checked';
                                }  ?> style="float: left;" type="checkbox"  value="admin.List-Page" name="roles[pagelist]" id="pageview">
                        <label style="float: left; margin-left: 5px; margin-top: 6px;" for="pageview">View</label>
                    </div>

                    <div class="col-xs-2">
                        <?php
                        $page_create = check_permission('pagecreate', $id);
                        ?>
                        <input <?php if ($page_create == 1) {
                                    echo 'checked=checked';
                                }  ?> style="float: left;" type="checkbox" value="admin.Create-Page" name="roles[pagecreate]" id="pagecreate">
                        <label style="float: left; margin-left: 5px; margin-top: 6px;" for="pagecreate">Create</label>
                    </div>

                    <div class="col-xs-2">
                        <?php
                        $page_edit = check_permission('pageedit', $id);
                        ?>
                        <input <?php if ($page_edit == 1) {
                                    echo 'checked=checked';
                                }  ?> style="float: left;" type="checkbox" value="admin.Edit-Page" name="roles[pageedit]" id="pageedit">
                        <label style="float: left; margin-left: 5px; margin-top: 6px;" for="pageedit">Edit</label>
                    </div>

                    <div class="col-xs-2">
                        <?php
                        $page_delete = check_permission('pagedelete', $id);
                        ?>
                        <input <?php if ($page_delete == 1) {
                                    echo 'checked=checked';
                                }  ?> style="float: left;" type="checkbox" value="admin.Delete-Page" name="roles[pagedelete]" id="pagedelete">
                        <label style="float: left; margin-left: 5px; margin-top: 6px;" for="pagedelete">Delete</label>
                    </div>

在这里,我希望在选中复选框创建或删除或更新时自动选择复选框视图。 即在选择其他任何一个时自动选中视图复选框

【问题讨论】:

  • 在 php 或 jquery 中?
  • 我刚刚发布了一个 jQuery 解决方案。那是你要找的吗?我想不出你为什么要用 PHP 来代替。
  • 你需要在 jquery 中

标签: php html jquery laravel


【解决方案1】:

你可以这样写:

$("input #pageview").checked = $("input[type=checkbox]:not(#pageview):checked").length > 0;

$("input[type=checkbox]:not(#pageview):checked").length

意思是:

给我没有 id pageview 并且被选中的标签输入复选框的数量

【讨论】:

    【解决方案2】:

    为三个没有您要自动检查的复选框的 id 的复选框检查 .length > 0。使用 .prop jQuery 函数来选中和取消选中 #pageview 复选框。

    function autoChecked() {
        if ($("input[type=checkbox]:not(#pageview):checked").length > 0) {
            $("#pageview").prop("checked", true);
        } else if ($("input[type=checkbox]:not(#pageview):checked").length  == 0) 
        {
           $("#pageview").prop("checked", false)
        }
    };
    $($("input[type=checkbox]:not(#pageview)")).on("change", function(event) {
        autoChecked();
    });
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
    <div>
      <input type="checkbox" name="pagecreate" value="0" /> Checkbox 1  
      <input type="checkbox" name="pageedit" value="0" /> Checkbox 2
      <input type="checkbox" name="pagedelete" value="0" /> Checkbox 3 
    </div>
    <BR><BR>
    <input type="checkbox" id="pageview" name="pageview" value="0" /> This checkbox will become checked if one or more of the other checkboxes are checked.

    【讨论】:

    • 请注意,这是无效的 html。 name 属性应该是唯一的或者变成一个数组(如果你想传递多个值)。如果名称相同,则在提交表单时,只会传递最后一个值,因为它会覆盖之前的值。
    • 谢谢,我刚刚修复了它,以便所有复选框的名称属性都是唯一的。
    猜你喜欢
    • 1970-01-01
    • 2013-10-11
    • 2017-01-16
    • 2018-10-21
    • 2013-06-29
    • 2021-08-09
    • 2020-10-12
    • 1970-01-01
    • 2021-08-23
    相关资源
    最近更新 更多