html5表格disabled,testTableCheckboxDisabled.html

content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">

tablePlug--综合测试页面

body {

margin: 10px;

/*border: 4px solid green;*/

}

html {

/*border: 4px solid yellow;*/

}

iframe {

/*border: 4px solid red;*/

}

.layui-form-label {

width: 100px;

}

.layui-input-block {

margin-left: 130px;

}

.layui-table-view tbody tr.layui-table-selected {

background-color: hotpink;

}

.layui-table-view tbody tr.layui-table-selected.layui-table-hover {

background-color: lightpink;

}

.layui-table-tips input[type="radio"] {

display: none;

}

.layui-table-view table.layui-table tbody tr.layui-table-click {

background-color: #bbfefe;

}

/* 贤客服样式 -- 开始 */

.XIANKEFU-bar {

z-index: 101;

}

@media screen and (max-width: 1440px) {

.XIANKEFU-bar span {

display: none;

}

}

/* 贤客服样式 -- 结束 */

style="position: absolute; right: 0;top:0;">

Fork me on Gitee

是否跨页记录

重置选中状态

固定列滚动支持

lay-text="开启|关闭">

查看

编辑

删除

上移

下移

获得选中的数据

获得选中的数据带缓存数据(跨页)

批量删除

第1页

第2页

无数据

重载

设置10003,10004,10010不可选

取消不可选

弹出选择

弹出iframe选择

添加临时数据

获得临时数据

清空临时数据

行列转换(初始实现)

行列转换(封装)

积分清零

女性积分加100

url模式测试用的是json文件所以翻页请用这里按钮,不要用table的中的laypage组件,实际开发中不会有这个问题

layui.config({base: 'test/js/'})

.use(['mockjax', 'testTablePlug', 'laydate'], function () {

var $ = layui.jquery

, layer = layui.layer //弹层

, form = layui.form //弹层

, table = layui.table //表格

, laydate = layui.laydate //日期控件

, tablePlug = layui.tablePlug //表格插件

, testTablePlug = layui.testTablePlug // 测试js模块

, renderFormSelectsIn = layui.renderFormSelectsIn // 针对form在特定场合下的渲染的封装

, formSelects = layui.formSelects; //多选下拉插件

// 当前这个测试页面测试的重点不是智能重载,所以关掉该功能,实际上该功能也是默认关闭的,可以不执行下面这句代码,也可以强制指定。

// tablePlug.smartReload.enable(true); // 默认就是打开的状态

// 处理操作列

var fn1 = function (field) {

return function (data) {

// return data[field];

var value = data[field];

return [

'',

'请选择或搜索',

'北京',

'天津',

'上海',

'广州',

'深圳',

'佛山',

''

].join('');

};

};

// 爱好列

var fnLike = function (d) {

var likes = [

{value: 'write', title: '写作'},

{value: 'read', title: '阅读'},

{value: 'daze', title: '发呆'}

];

return [

'', // xm-select实际的作用就跟id差不多,所以实际使用中要注意唯一性,

// '',

// '写作',

// '阅读',

// '发呆',

function () {

var str = '';

var values = d.like ? d.like.split(',') : [];

layui.each(likes, function (index, like) {

str += '' + like.title + ''

});

return str;

}(),

''

].join('');

};

var laytpl = layui.laytpl;

var tplTemp = '你好! v ';

var layuiTpl = function (template, data, callback, open, close) {

laytpl.config({

open: open || '{{',

close: close || '}}'

});

var htmlTemp = laytpl(template).render(data, callback);

laytpl.config({

open: '{{',

close: '}}'

});

return htmlTemp;

};

// layer.msg(layuiTpl(tplTemp, {name: 'Layui'}, null, ''));

layer.open({

type: 1,

skin: 'layer-top',

area: '100%',

offset: 't',

time: 3000,

anim: 5,

shade: 0,

title: false,

closeBtn: false,

content: layuiTpl(tplTemp, {name: 'Layui'}, null, ''),

success: function (layero, index) {

layero.find('.layui-layer-content').append('')

},

resize: false

});

formSelects.opened(function (id) {

alert('打开了...1');

}).closed(function (id) {

alert('关闭了...1');

});

// 新增init的时候针对后台返回的默认选中是一个对象集合的处理,init之后会将默认选中的data也存起来,后面获得选中数据的时候getCache也能获得默认选中的数据,

tablePlug.tableCheck.init('demo',

[{

"id": 10000,

"username": "user-0",

"sex": "女",

"city": "北京",

"sign": "签名-0",

"experience": 0,

"logins": 24,

"birthday": "1989/01/01",

"wealth": 82830700,

"classify": "作家",

"like": "write,read",

"score": 57

}, {

"id": 10001

}],

'id' // 第三个参数,主键名称,如果表格的主键名不是'id'那么这个参数必须制定,以为一般来说init会在render之前执行,

// 所以如果不指定,他找不到表格配置信息,也就不知道里面配合的主键名称是什么,导致变成默认的'id'后面render出来就没有效果了

);

table.render({

elem: '#demo'

// , height: 'full-135'

, height: 720

, size: 'lg'

, url: 'json/data11.json' //数据接口

// , data: [{}]

, title: '用户表'

, even: true

, page: {} //开启分页

, headers: {

pageCompute: true

}

, loading: true

, toolbar: '#toolbarDemo' //开启工具栏,此处显示默认图标,可以自定义模板,详见文档

, totalRow: true //开启合计行

, cellMinWidth: 90

// 是否开启字段筛选的记忆功能,支持true/false/'local'/'session'/其他 开启的情况下默认是session,除非显式的指定为'local'

, colFilterRecord: true

// 开启智能重载

, smartReloadModel: true

// 默认反转

// , reversal: true

// 设置开启部分选项不可选

// 设置表格的主键(主要用在记录选中状态还有不可操作记录的时候用

, primaryKey: 'id'

, checkDisabled: {

enabled: true,

data: [10000, 10001, 10002, 10003, 10004, 10005, 10009]

}

// , pageLanguage: 'zh-TW' // 需要自己定义对应的文本

// , pageLanguage: 'en' // tablePlug里面已经定义了,如果觉得不满意可以用tablePlug.set去更新默认的配置;

// , pageLanguage: true // 无效的设置方式,只支持字符串或者对象的

// 也可以针对某个表格有特殊的配置如下面对象的设置方法,但是如果没有必要单独的自定义建议使用直接赋值成语言名称的字符串形式

, pageLanguage: {

lan: 'en',

// 可自定义text,lan为en的情况下

text: {

// jumpTo: 'jump to', // 到第

// page: 'page', // 页

// go: 'go', // 确定

// total: 'total', // 共

unit: 'item' // 条(单位,一般也可以不填)

// optionText: 'limit each page' // 条/页

}

}

, done: function (res, curr, count) {

var tableView = this.elem.next();

var tableId = this.id;

// 针对表格中的多选下拉的处理

renderFormSelectsIn(tableView, {}, 'layuiTable');

// 初始化laydate

layui.each(tableView.find('td[data-field="birthday"]'), function (index, tdElem) {

tdElem.onclick = function (event) {

layui.stope(event)

};

laydate.render({

elem: tdElem.children[0],

// closeStop: tdElem,

format: 'yyyy/MM/dd',

done: function (value, date) {

var trElem = $(this.elem[0]).closest('tr');

table.cache.demo[trElem.data('index')]['birthday'] = value;

}

})

});

},

parseData: function (ret) {

return {

code: ret.code,

msg: ret.msg,

count: ret.data ? (ret.data.total || 0) : 0,

data: ret.data ? (ret.data.list || []) : []

}

}

, checkStatus: {}

// , headers: {token: '12345'}

// , autoSort: false

// , initSort: {

// field: 'id' //排序字段,对应 cols 设定的各字段名

// , type: 'asc' //排序方式 asc: 升序、desc: 降序、null: 默认排序

// }

, cols: [

[

// {type: 'radio', fixed: 'left', rowspan: 2, totalRowText: '共计:'/*, hide: true*/},

{type: 'checkbox', fixed: 'left', rowspan: 2, totalRowText: '共计:'/*, hide: true*/},

{type: 'numbers', fixed: 'left', rowspan: 2},

{

field: 'id',

title: 'ID',

filter: true,

width: 80,

sort: true,

fixed: 'left',

// totalRowText: '平均:',

rowspan: 2

},

{title: '基本信息', colspan: 3, align: 'center'},

{title: '详细信息', colspan: 7, align: 'center'},

{

fixed: 'right',

type: 'toolbar',

field: 'toolbar_move',

title: '',

width: 150,

align: 'center',

toolbar: '#moveBar',

rowspan: 2

},

{

fixed: 'right',

type: 'toolbar',

// hide: true,

field: 'toolbar_common',

title: '操作',

width: 90,

align: 'center',

toolbar: '#barDemo',

rowspan: 2

}

]

, [ //表头

{field: 'username', title: '姓名', hideable: false/*, hide: true*/}

, {field: 'sex', title: '性别', width: 90, filter: true, sort: true}

, {field: 'birthday', title: '生日', edit: false, width: 120}

, {field: 'experience', title: '积分', width: 90, sort: true, totalRow: true}

, {field: 'score', title: '评分', edit: true, event: 'editField', width: 90, sort: true, totalRow: true}

, {field: 'city', title: '城市', search: true, edit: false, width: 150, type: 'normal', templet: fn1('city')}

, {

field: 'sign',

title: '签名',

width: 200,

edit: true

// templet: function (d) {

// // return d['sign'];

// return d[this.field];

// }

// templet: '

原始效果
'

}

, {field: 'classify', title: '职业', filter: true, width: 100}

, {field: 'like', title: '爱好', width: 240, edit: false, templet: fnLike}

, {field: 'wealth', title: '财富', width: 135, filter: true, sort: true, totalRow: true}

]

]

});

// 监听表格中的下拉选择将数据同步到table.cache中

form.on('select(city_select)', function (data) {

var selectElem = $(data.elem);

var tdElem = selectElem.closest('td');

var trElem = tdElem.closest('tr');

var tableView = trElem.closest('.layui-table-view');

table.cache[tableView.attr('lay-id')][trElem.data('index')][tdElem.data('field')] = data.value;

});

//监听排序事件

table.on('sort(test)', function (obj) { //注:tool是工具条事件名,test是table原始容器的属性 lay-filter="对应的值"

// console.log(obj.field); //当前排序的字段名

// console.log(obj.type); //当前排序类型:desc(降序)、asc(升序)、null(空对象,默认排序)

// console.log(this); //当前排序的 th 对象

//尽管我们的 table 自带排序功能,但并没有请求服务端。

//有些时候,你可能需要根据当前排序的字段,重新向服务端发送请求,从而实现服务端排序,如:

// table.reload('demo', {

// initSort: obj //记录初始排序,如果不设的话,将无法标记表头的排序状态。

// , where: { //请求参数(注意:这里面的参数可任意定义,并非下面固定的格式)

// field: obj.field //排序字段

// , order: obj.type //排序方式

// }

// });

// layer.msg('服务端排序。order by '+ obj.field + ' ' + obj.type);

});

// 监听编辑如果评分负数给回滚到修改之前并且弹出提示信息并且重新获得焦点等待输入

table.on('edit(test)', function (obj) {

var tableId = obj.tr.closest('.layui-table-view').attr('lay-id');

var trIndex = obj.tr.data('index');

var that = this;

var tdElem = $(that).closest('td');

var field = obj.field;

var value = obj.value;

if (field === 'score') {

value = parseInt(value);

if (isNaN(obj.value) || value < 0) {

setTimeout(function () {

// 小于0回滚再次获得焦点打开

obj.update({score: table._dataTemp[tableId][trIndex][field]});

layer.msg('评分输入不合法,必须是大于0的数字!', {anim: 6});

tdElem.click();

}, 100);

} else {

tablePlug.renderTotal(tableId);

}

}

});

// tr点击触发复选列点击

$(document).on('click', '.layui-table-view tbody tr', function (event) {

var elemTemp = $(this);

var tableView = elemTemp.closest('.layui-table-view');

var trIndex = elemTemp.data('index');

tableView.find('tr[data-index="' + trIndex + '"]').find('[name="layTableCheckbox"]+').last().click();

});

// $(document).on('focus', '.layui-table-edit', function (event) {

// $(this).autocomplete({

// source: [ "c++", "java", "php", "coldfusion", "javascript", "asp", "ruby" ]

// });

// })

// 监听固定列滚动支持的开关切换

form.on('switch(tableFixedScrollSwitch)', function (obj) {

tablePlug.enableTableFixedScroll(obj.elem.checked);

});

$('.fruit_type_in .fruit_type_text').on('click', function () {

setTimeout(function () {

$('#type_list').find('select[name="要找的select的name"]').next('div.layui-form-select').find(".layui-input").get(0).click();

}, 0);

});

});

一键复制

编辑

Web IDE

原始数据

按行查看

历史

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值