Jquery set复选框检查是否传递的值= 1

问题描述 投票:0回答:1

我目前正在管理面板上,用户可以通过复选框获得权限。数据通过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>

非常感谢任何帮助!

php jquery laravel
1个回答
0
投票

您可以像这样尝试一下,因为您正在循环运行值,所以如果循环中为0,它将把所有复选框的值设置为未选中。

$('input.type_checkbox[value="1"]').prop('checked', true);
© www.soinside.com 2019 - 2024. All rights reserved.