easyui append后根据不同属性设置checkbox的禁用
时间: 2024-03-03 22:47:33 浏览: 110
在EasyUI的DataGrid中,我们可以通过定义列的formatter函数来实现根据不同属性值来禁用某些单元格中的复选框。具体来说,我们可以在formatter函数中返回一个`<input>`标签,并给它添加一个`disabled`属性。然后,我们可以使用jQuery的`each()`函数遍历DataGrid的所有行和列,并找到我们想要禁用的单元格中的复选框,并将它的`<input>`标签设置为禁用状态。
下面是一个示例代码:
```javascript
// 定义DataGrid的columns
var columns = [[
{field:'name',title:'Name',width:100},
{field:'age',title:'Age',width:100},
{field:'gender',title:'Gender',width:100},
{field:'married',title:'Married',width:100,formatter: function(value,row,index){
if (row.age >= 18 && row.gender === 'Female'){
// 如果年龄大于等于18且性别为女性,则禁用复选框
return '<input type="checkbox" disabled="disabled">';
} else {
return '<input type="checkbox">';
}
}}
]];
// 在DataGrid中添加数据后,禁用满足条件的复选框
$('#dg').datagrid('appendRow',{
name:'John',
age:20,
gender:'Male',
married:false
}).datagrid('appendRow',{
name:'Jane',
age:16,
gender:'Female',
married:true
}).datagrid('getPanel').find('input[type="checkbox"][disabled="disabled"]').each(function(){
$(this).closest('td').css('opacity', '0.5');
});
```
在上面的代码中,我们定义了一个包含四列的DataGrid,分别是`Name`、`Age`、`Gender`和`Married`。在`Married`列的formatter函数中,我们判断行的`age`属性是否大于等于18且`gender`属性是否为`Female`,如果满足,则返回一个禁用状态的`<input>`标签。
接着,我们向DataGrid中添加了两行数据,并且使用`getPanel()`函数获取DataGrid的面板,然后使用`find()`函数查找所有禁用状态的复选框,并使用`each()`函数遍历它们,并将它们的父元素`<td>`的不透明度设置为0.5,从而禁用它们。
阅读全文