我显示基于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);
//}
});
});
});
答案 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);
});
});
完美地按照预期工作