Я хочу, чтобы первый флажок автоматически проверялся при проверке любого из других флажков

#php #html #jquery #laravel

#php #HTML #jquery #laravel

Вопрос:

 <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>
 

Здесь я хочу, чтобы вид флажка был автоматически выбран, когда установлен флажок создать, удалить или обновить.
это означает, что флажок просмотра автоматически устанавливается при выборе любого из других

Комментарии:

1. в php или jquery?

2. Я только что опубликовал решение jQuery. Это то, что вы искали? Я не могу придумать причину, по которой вы хотели бы сделать это с помощью PHP.

3. да, мне нужно в jquery

Ответ №1:

вы могли бы просто написать это:

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

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

означает:

дайте мне номер флажка ввода тега, который не имеет идентификатора pageview и который проверяется

Ответ №2:

Проверьте .length> 0 для трех флажков, у которых нет идентификатора флажка, который вы хотите проверить автоматически. Используйте функцию .prop jQuery, чтобы установить и снять флажок #просмотр страницы.

 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. 

Комментарии:

1. Обратите внимание, что это недопустимый html. name Атрибут должен быть либо уникальным, либо преобразован в массив (если вы хотите передать несколько значений). Если имена совпадают, при отправке формы будет передано только последнее значение, потому что оно перезаписывает предыдущие.

2. Спасибо, я просто исправил это, чтобы атрибут name был уникальным для всех флажков.