我tm服了 ,今天select check功能不管用了。看了下源码如下:
/**
* 选中节点,因为tree是异步加载,所以必须在success回调中调用checkNode函数,否则无法获取生成的DOM元素
* @param filter lay-filter属性
* @param id 选中的id
*/
TreeSelect.prototype.checkNode = function (filter, id) {
var o = obj.filter(filter),
treeInput = o.find('.layui-select-title input'),
treeObj = obj.treeObj(filter),
node = treeObj.getNodeByParam("id", id, null),
name = node.name;
treeInput.val(name);
o.find('a[treenode_a]').removeClass('curSelectedNode');
treeObj.selectNode(node);
};
它位于treeselect.js 是layui的重要组成部分,看注释可以知道,
<div class="layui-block">
<label class="layui-form-label">具体地址</label>
<div class="layui-input-block">
<div id="addressDetail">
<input id="dizhi" type="text" name="dizhi" lay-verify="" autocomplete="off"
placeholder="请输入具体地址" class="layui-input">
@*<dl id="addressTip" class="addressDl"></dl>*@
</div>
</div>
</div>
</div>
var treeSelect = layui.treeSelect;
treeSelect.render({
elem: '#areas',
data: apiUrl + "/api/Base_Region/GetRegionAndChildrenListTreeAsync",
type: 'GET',
placeholder: '地址',
search: true,
click: function (d) {
$("#area").val(d.current.id);
var parmas = {
url: "/api/Base_Region/GetItem?id=" + d.current.id,
type: 'POST'
};
interaction(parmas).then(data => {
$("#dizhi").val(data);
layer.msg("已选择" + data, {
icon: 1,
time: 2000
}, function () {
});
}).catch(err => {
});
},
success: function (d) {
bindInfo();
}
});
var mc_util = youyaboot_all;
var identify = mc_util.getParameter('id')//从url中检测主键
function bindInfo() {
// alert(identify);
if (identify != null && identify != '') {
var parmas = {
url: "/api/Sys_Organization/GetItem?id=" + identify,
type: 'POST'
};
interaction(parmas).then(data => {
if (data.pic != "") {
$("#imgBtn").attr("src", apiUrl + data.pic);
}
pca.init('select[name=province]', 'select[name=city]', 'select[name=area]', data.province, data.city,data.area);
mc_util.mappingEntityToFormUiValue($("body"), data);
form.render();
treeSelect.checkNode('tree2', data.parentid);
treeSelect.checkNode('tree3', data.area);
}).catch(err => {
console.log(err);
});
}
else {
$("#parentid").val(mc_util.getParameter('parentid'));
pca.init('select[name=province]', 'select[name=city]', 'select[name=area]');
if (mc_util.getParameter('parentid') != 0) {
treeSelect.checkNode('tree2', mc_util.getParameter('parentid'));
treeSelect.checkNode('tree3', data.area);
}
}
}