您的位置:首页 > Web前端 > JQuery

######保存角色,add表单页面Ajax传参给action,多个集合属性,【较为复杂的页面传参(封装ajax json参数)】:注意表单数据序列化,jquery遍历,json对象转String

2017-11-10 21:58 1046 查看
================页面封装 角色对象 的参数数据。分别封装 权限 和菜单 属性数据。

注意jquery遍历,json对象转String,表单数据序列化(===经测试,序列化 无法封装全部的CheckBox数据(权限和菜单 数据 是多选框))。

//====== 点击保存
$('#save').click(function(){
//location.href='role.html';

var formData = $("#roleForm").serializeJSON();// 权限数据只封装了最后一个 (chebox)。
//==========1、封装权限数据
var checkArr = $("input[name='permissionIds'][checked='checked']")//不行
//alert(checkArr.length);//0 ==选择器这样写不对。
checkArr = $("input[name='permissionIds']:checked");
//alert(checkArr.length);//3

var permissionIds  = new Array();
//===========================js对象方式。==ok
/* for (var i = 0; i < checkArr.length; i++) {
//alert("this:"+this);
//alert("$(this).val():"+$(this).val());//===.val()只能在each函数内用。
//permissionIds.push(checkArr[i].val());//===.val()只能在each函数内用。
alert("checkArr[i].value:"+checkArr[i].value);//===js对象方式。==ok
permissionIds.push(checkArr[i].value);//===id值加入数组
} */
//===========================jquery对象方式。==ok
checkArr.each(function(){
//alert("$(this).val()==="+$(this).val());
permissionIds.push($(this).val());//===id值加入数组
});
//permissionIds = permissionIds。.join(",");//报错:Invalid or unexpected token :符号不对。
permissionIds = permissionIds.join(",");
formData["permissionIds"] = permissionIds;
//==========2、封装菜单数据
var treeObj = $.fn.zTree.getZTreeObj("menuTree");
var nodes = treeObj.getCheckedNodes(true);

var menuIds  = new Array();
/* nodes.each(function(){  //============nodes没each方法
alert("$(this).val()==="+$(this).val());
menuIds.push($(this).val());//===id值加入数组

}); */
alert("nodes.length==="+nodes.length)
for (var i = 0; i < nodes.length; i++) {

//alert("menuIds[i].id==="+nodes[i].id);
menuIds.push(nodes[i].id);//===id值加入数组.===######=每一项menu都拿到。不论父子(都是一个menu对象)===自关联。
}
menuIds = menuIds.join(",");
formData["menuIds"] = menuIds;

//formData = JSON.stringify(formData);//==#####=只在测试用,查看数据。传参,json对象,不是String(导致传参失败!!!)
//alert(formData);
//return;

//====参数是json对象,不是String
//====
if ($("#roleForm").form("validate")) {
$.post("../../roleAction_save.action",formData,function(data){
if (data.success) {
$.messager.alert("提示",data.message);
location.href='role.html';
} else {
$.messager.alert("提示",data.message);
}
});
}

});
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐