Laravel在ajax中获取复选框的值错误:无法读取属性'已检查'为null

时间:2017-10-24 23:55:55

标签: ajax checkbox laravel-5 laravel-blade

我显示基于db值检查或取消选中复选框值。但是当用户尝试更改它时,如取消选中它并更新值。我打电话给ajax我得到这个错误。

Thanx寻求帮助 代码

 <div class="{{count($employees) !=0 ? 'sidebar-hide': 'sidebar-customize'}}">
        <a>
          {{ Form::checkbox('Employee','1',$user->employee) }}
           <i class="fa fa-id-card"></i> 
            <span>Employee</span>
        </a>
    </div>

下面是Ajax函数

$(document).ready(function(){
   $('#customize').click(function(e){
        e.preventDefault();
      var customers=document.getElementById('customers').checked ? '1' :'0' ;
      var accounts=document.getElementById('accounts').checked ? '1' :'0';
      var Inventory=document.getElementById('InventoryItems').checked ? '1' :'0';
      var Employee=document.getElementsByName('Employee').checked ? '1' :'0'; 
       console.log(Employee);

       $.ajaxSetup({
            headers: {
              'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
            }
        });

       $.ajax({
           url :"{{ url('user')}}",
           type :'POST',
           data :{

              customer : customers,
              accounts : accounts,
              inventory: Inventory,
              employee : Employee
           },
           dataType: 'JSON'
         //   ,
         // success: function( data ) {
         //    $("#ajaxResponse").append(data.msg);
         //    console.log(data);
        //}  

       });   
   });
});

2 个答案:

答案 0 :(得分:0)

是否动态创建了HTML?

如果是这样,那么你需要将事件绑定到父元素并使用jQuery.on()方法而不是click()

$('#parentelement').on('click', 'div.sidebar-customize', function(e) {
  //code
});

方法的第二个参数需要定位您尝试使用的元素。从你的HTML,我无法告诉你最终会是什么。也许实现一个额外的类或ID,以便更好地定位HTML。

答案 1 :(得分:0)

就像我必须从复选框中包含Id

{{ Form::checkbox('Employee', 'Employee', $user->employee, ['id' => 'employee']) }} 

Ajax代码:

 $(document).ready(function(){

       $('#customize').click(function(e){
            e.preventDefault();
            var employee=document.getElementById('employee').checked ? '1' :'0' ;
           console.log(employee);
       });


    });

完美地按照预期工作