#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 был уникальным для всех флажков.