问题
最近编写系统时遇到了编辑数据表并更新的功能,需要实现点击编辑按钮弹出编辑页面,需要将该条记录信息传入编辑页面
代码如下
table.on('tool(currentTableFilter)', function (obj) {
var data = obj.data;
console.log(data);
if (obj.event === 'edit') {
// console.log(data)
var lay = layer.open({
title: '编辑信息',
type: 2,
shade: 0.2,
maxmin:true,
shadeClose: true,
area: ['90%', '90%'],
content: 'xxxx',
success: function(layero, index){
var body=layer.getChildFrame('body',index);//少了这个是不能从父页面向子页面传值的
//获取子页面的元素,进行数据渲染
body.contents().find("#id").val(data.id);
body.contents().find('#time').val(data.watch);
body.contents().find('#username').val(data.username);
body.contents().find('#phone').val(data.phone);
body.contents().find('#service').val(data.service);
body.contents().find('#note').val(data.note);
body.contents().find('#question').val(data.question);
// 解决了子页面select赋值问题和默认选中问题
var select = 'dd[lay-value=' + data.questiontype + ']';
body.contents().find('dl').find(select).click();
var select = 'dd[lay-value=' + data.servicetype + ']';
body.contents().find('dl').find(select).click();
},
});
$(window).on("resize", function () {
layer.full(index);
});
return false;
}
其中
success: function(layero, index){
var body=layer.getChildFrame('body',index);//少了这个是不能从父页面向子页面传值的
//获取子页面的元素,进行数据渲染
body.contents().find("#id").val(data.id);
body.contents().find('#time').val(data.watch);
body.contents().find('#username').val(data.username);
body.contents().find('#phone').val(data.phone);
body.contents().find('#service').val(data.service);
body.contents().find('#note').val(data.note);
body.contents().find('#question').val(data.question);
},
代码实现对表单的赋值,但实际中如果出现select
选择栏,会出现只传值不会出现默认选中,解决方法为:将赋值语句修改为以下代码
// 解决了子页面select赋值问题和默认选中问题
var select = 'dd[lay-value=' + data.questiontype + ']';
body.contents().find('dl').find(select).click();
var select = 'dd[lay-value=' + data.servicetype + ']';
body.contents().find('dl').find(select).click();
找到dl
下面dd
的值为传入值得选择,进行点击操作,便可解决select不能默认选择问题