通过ajax 后台传递的 区域id 选中ztree的节点 并展开节点
代码如下:
< script type = "text/javascript" >
var flag = "<%=request.getParameter("
flag ")%>";
if (flag != "true") {
flag = false;
} else {
flag = true;
}
var reginTree = {
setting: {
view: {
fontCss: {
color: "#000"
}
},
check: {
enable: true,
chkboxType: {
"Y": "p",
"N": "p"
}, //加上ps 当点击父节点时子节点全部选中
children: "children"
},
data: {
key: {
checked: "checked"
},
simpleData: {
enable: true,
idKey: "id",
pIdKey: "pId",
rootPId: 0
}
}
},
//获取ztree对象
getZtreeObj: function(id) {
var zTree;
if ($.fn.zTree.getZTreeObj(id) != null && $.fn.zTree.getZTreeObj(id) != undefined) {
zTree = $.fn.zTree.getZTreeObj(id);
}
return zTree;
},
//初始化ztree
loadZtree: function(json, id, treeNode, callback) {
var setter = $.extend({}, reginTree.setting, json);
$.fn.zTree.init($('#' + id), setter, treeNode);
var zTree = reginTree.getZtreeObj(id);
if (callback) callback();
},
//加载ztree
loadArea: function(bal, regionIdList) {
var regionJson = {
"level": "2"
};
var treeNode = [];
_public_.getJson(regionJson, "frontServer?busiCode=02060203").done(function(data) {
if (data.returnCode == "Y") {
for (var i = 0; i < data.regionList.length; i++) {
var id = data.regionList[i].rid;
var pId = data.regionList[i].pid;
var name = data.regionList[i].regionName;
var json = {
"id": id,
"name": name,
"pId": pId
};
if (bal) {
if (reginTree.setbal(regionIdList, json.id)) {
json.checked = true;
}
}
treeNode.push(json);
}
console.dir(treeNode);
} else {
console.log("加载数据失败");
}
reginTree.loadZtree({
callback: {
onCheck: reginTree.zTreeOnCheck
}
}, 'tree', treeNode, function() {
var treeObj = reginTree.getZtreeObj('tree');
var nodes = treeObj.getCheckedNodes(true);
$.each(nodes, function(i, value) {
treeObj.expandNode(value, true, false, true);
});
});
});
$('#tree').css({
'width': '400px',
'height': '450px',
'overflow': 'auto'
});
$('#tree').parent().css({
'width': $('#tree').get(0).offsetWidth + 'px',
'height': $('#tree').get(0).offsetHeight + 'px'
});
},
//ztree节点选中 当选中节点时树形 结构展开
zTreeOnCheck: function(event, treeId, treeNode) {
var treeObj = reginTree.getZtreeObj('tree');
if (treeNode.checked == true) {
//单选控制
treeObj.checkAllNodes(false);
treeObj.checkNode(treeNode, true, true, false);
var oner = treeObj.getCheckedNodes(true);
treeObj.expandNode(treeNode, true, false, true);
}
/* var nodes = treeObj.getCheckedNodes(true);
console.dir(nodes); */
/* var treeObj = reginTree.getZtreeObj('tree'),
nodes = treeObj.getCheckedNodes(true),
v = "";
for (var i = 0; i < nodes.length; i++) {
v += nodes[i].name + ",";
alert(nodes[i].id + "," + v); //获取选中节点的值
} */
},
getCheckNode: function(id, bal, param) {
var zTree = reginTree.getZtreeObj(id);
var nodes = zTree.getCheckedNodes(bal);
var arr = [];
var i = 0;
var len = nodes.length;
console.dir(nodes);
for (i = 0; i < len; i++) {
arr.push(nodes[i][param]);
}
return arr.join();
},
setbal: function(regionIdList, id) {
var arr = regionIdList.split(',');
var i = 0;
var len = arr.length;
for (i = 0; i < len; i++) {
if (arr[i] == id) {
return true;
break;
}
}
}
};
$(function() {
$(".submit").on("click", function() {
var regionIds = reginTree.getCheckNode("tree", true, "id");
if (flag == true) {
var jsonr = {
"regionIds": regionIds
};
_public_.getJson(jsonr, "frontServer?busiCode=SYSRegionGetAllName").done(function(data) {
window.opener.setRegionIds(data.regionAllName, regionIds);
window.close();
});
} else {
window.opener.setRegionIds("", regionIds);
window.close();
}
});
});
var regionJson = {};
var regionIdList = window.opener.getRegionIds();
var bal = false;
if (regionIdList != null || regionIdList != "") {
/* regionJson = {"regionIdList":regionIdList}; */
bal = true;
}
//console.dir(regionJson);
reginTree.loadArea(bal, regionIdList); < /script>
通过ajax 后台传递的 区域id 选中ztree的节点 并展开节点的更多相关文章
- ajax向后台传递数组参数并将后台响应的数据赋值给一个变量供其它插件使用
1.在js中封装ajax向后台传递数组参数函数 //combogrid * * @Description 封装ajax向后台传递数组参数并将后台响应的数据赋值给一个变量方便其他插件使用该数据函数 * ...
- ajax获取后台传递的json数据
最近在使用JQuery的ajax方法时,需要返回的数据为json数据,在success返回中数据处理会根据返回方式不同会采用不同的方式来生成json数据.在$.ajax方法中应该是如何来处理的,简 ...
- ajax如何向后台传递数组,在后台该如何接收的问题(项目积累)
一.后台如何接收从前台接收的数组: 使用request.getParameterValues(String xxx); <input type="text" name=&qu ...
- 【转】jQuery.ajax向后台传递数组问题
$.ajax({ url: "/xxx", type: "GET", data: { "boxIds": boxIds, "box ...
- jQuery.ajax向后台传递数组问题
今天重温了一个问题,jQuery.ajax向后台传递一个数组,而在后台接收不到该值 前台js方法部分代码如下: //创建一个测试数组 var boxIds = new Array(); boxIds. ...
- Ajax向前后台传递json和转换
学生管理系统MVC模式设计心得: jquery .ajax提交data数据格式 jquery 的Ajax方法提交数据,但是是多个参数,具体data的格式如下: data提交的数据类型为:Object ...
- 基于layUI调用后台数据实现区域信息级联查询
基于layUI调用后台数据实现区域信息级联查询 1.基本思路 后台提供根据区域编码查询区域列表公共接口 页面初始化调用后台接口加载所有省份 点击省份将省份区域编码传入后台查询该省份下所有地市信息,以此 ...
- jquery 根据后台传递过来的三维数组动态生成三级菜单
根据后台传递过来的三维数组动态生成三级菜单 <!DOCTYPE html> <html lang="en"> <head> <meta c ...
- jquery ajax post 传递数组 ,多checkbox 取值
jquery ajax post 传递数组 ,多checkbox 取值 http://w8700569.iteye.com/blog/1954396 使用$.each(function(){});可以 ...
随机推荐
- lesson32 Shopping for food
EMPLOYEE: undefined763cff06-f7fc-4a01-b5f8-c78a2f0110ae.mp3 Can I help you, Sir? 0先生,我能帮你吗? BOB: und ...
- boost.asio与boost.log同时使用导致socket不能正常收发数据
现象: 1. 没有使用boost.log前能正常收发数据 2.加入boost.log后async_connect没有回调 fix过程: 1. gdb调试发现程序block在pthread_timed_ ...
- jQuery刷新包含的<jsp:include>页面
jQuery刷新包含页面 JQuery刷新包含页面,以下两种形式均可: <%@include file="../include/header.jsp" %> < ...
- laravel cookie写入
$cookie = cookie('cookie_name', 'value', 5); $data = ['title'=>'hello world']; ...
- UVA 11624 Fire!
题目大意: F代表火焰 J代表人 一个人想在火焰烧到自己之前逃出着火地区 . 为路,人可以走,火可以燃烧(当然如果火先烧到就不能走了) #为墙,不可走 如果能逃出,输出时间,不能,输出IMPOSSIB ...
- 利用innodb_force_recovery 解决WAMP MySQL服务器无法正常启动的问题
有次公司突然断电,导致wamp mysql无法重启 二 分析 初步估计是mysql日志损坏问题,从日志内容分析来看,数据库在机器crash 导致日志文件损坏,重启之后无法正常恢复,更无法正常对外 ...
- oracle 函数写法 总结
1:首先看创建一个函数 给定一个日期,判断是否是休息日. create or replace function test(date_in in date) return int is num int; ...
- html 中自动换行的实现方式
1,<div type="word-wrap: break-word;word-break:break-all;"> </div> 2, <div t ...
- RP4412开发板在Android系统编译生成ramdisk-uboot.img
荣品RP4412开发板在android系统编译的时候,怎么生成ramdisk-uboot.img生成流程分析: mkimage -A arm -O linux -T ramdisk -C none - ...
- 完美解决google无法访问
1.进入短信界面 2.菜单-设置 3.修改短信中心号码(Set the SIM's smsc number) 保存 [测试结果]:提示保存成功,但是号码没有改变,退出重新进入设置才会看到号码更新 [预 ...