前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >原 js页面传值参数打包类

原 js页面传值参数打包类

作者头像
魂祭心
发布2018-05-17 16:00:30
2.4K0
发布2018-05-17 16:00:30
举报
文章被收录于专栏:魂祭心魂祭心

代码:

代码语言:javascript
复制
  var PageState = {
    MakeParams: function (valueState) {
        var params ={};
        var controlState={};
        //获取控件中的值
        var inputs = document.getElementsByClassName("controlKeep").getElementsByTagName("input");
        var selects = document.getElementsByClassName("controlKeep").getElementsByTagName("select");
        //制作json字符串
        for (var i = 0; i < inputs.length; i++) {
            if ($("#" + inputs[i].id).attr("type") == "text" || $("#" + inputs[i].id).attr("type") == "hidden") {
                controlState[inputs[i].id]=$("#" + inputs[i].id).val()
            }
            else if ($("#" + inputs[i].id).prop("type") == "checkbox") {
                if ($("#" + inputs[i].id).prop("checked") == true) {
                    param += "\"" + inputs[i].id + "\"" + ":" + "\"" + 1 + "\",";
                    controlState[inputs[i].id]=1;
                }
                else {  controlState[inputs[i].id]=-1;  }
            }
        }
        for (var j = 0; j < selects.length; j++) {
            controlState[selects[j].id]=selects[j].value;
        }
        params.controlState=controlState;
        params={
            "valueState":valueState
        }
        //返回json
        return JSON.stringify(params) ;
    },
    DecrizeParams: function (strJson) {
        var params =JSON.parse(strJson);
        for (var key in params.controlState) {
            var value=params[key]
            var obj = document.getElementById(key);
            //input类型值填充
            if (obj.nodeName.toLowerCase() == "input") {

                if (type = "text" || type == "hidden") {
                    $("#" + key).val(value);
                }
                if (type == "checkbox") {
                    if (value > 0)      //正数代表选择
                    { $("#" + key).prop("checked", true); }
                    else
                    { $("#" + key).prop("checked", false); }
                }
            }
            //select类型值填充
            if (obj.nodeName.toLowerCase() == "select") {
                var selectObj = document.getElementById(key);
                for (i = 0; i < selectObj.options.length; i++) {
                    var curOptObj = selectObj.options[i];
                    var value = curOptObj.value;
                    if (value == value) {
                        curOptObj.selected = true;
                    }
                }
            }

        }
        return params.valueState
     }
};

发送

代码语言:javascript
复制
     var parames= GoAndBackUrl.MakeParams({a:12,b:123});

解析

代码语言:javascript
复制
     var obj=backMsg.DecrizeParams();

这里是后台写入隐藏字段,页面load的时候获取字段解析,填充。

    这段代码只是div中的input和select两种控件,使用controlKeep标记,则可以搜集到controlstate这种,也可能存在js变量,可以组合成参数传入。

    读取的时候拿到数据调用DecrizeParams,返回的js变量的结合。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档