我目前正在管理面板上,用户可以通过复选框获得权限。数据通过js脚本和数据方法从我的主视图传递到模态。我遇到的麻烦是,当传递给复选框的值为1(给定管理员权限)时,应该选中该复选框,但不是。我通过将输入更改为文本来检查该值是否正确传递给模态,在这里我可以看到正确的值我想实现的目标是:我的主视图上的DB传递给我的模态,选中了值为1的复选框,而未选中其他复选框(值= 0)。另外,这不会影响我编辑用户权限的能力。
这是我尝试过的方法:
<!-- Send Data to modal -->
$('#edit').on('show.bs.modal', function(event) {
var button = $(event.relatedTarget); // Button that triggered the modal
var id = button.data('id'); // Extract info from data-* attributes
var admin = button.data('admin');
var expert = button.data('expert');
var modal = $(this);
$('#edit_form').attr('action', '{{URL::to('/')}}/AdminPanel/'+id); //No spaces!!!
modal.find('#admin_field').val(admin);
modal.find('#expert_field').val(expert);
});
<!-- Modal -->
<div class="form-group row">
<div class="col-xs-8 col-sm-7 col-md-6">
<label for="admin_field" class="col-md-4 col-form-label text-md-right">{{ __('Admin?') }}
<input id="admin_field" type="checkbox" class="w3-check" name="Admin">
</label>
</div>
</div>
<script type="text/javascript">
$( document ).ready(function() {
// auto check checkbox if value == 1
$('.w3-check').each(function(e){
if($(this).val() == 1){
$(this).prop("checked", true);
}
});
// Checkbox instead of on:off 1:0
$('input:checkbox').on('change', function(){
this.value = this.checked ? 1 : 0;
}).change();
});
</script>
非常感谢任何帮助!
您可以像这样尝试一下,因为您正在循环运行值,所以如果循环中为0,它将把所有复选框的值设置为未选中。
$('input.type_checkbox[value="1"]').prop('checked', true);