前端js传值JSON.stringify(obj)

用bootstrap-talbe前端传值

首先直接传肯定是不行的;

其次做一个全局变量也不行,因为这里的问题的是用bootstrap-table进行生成的操作HTML,从这里datass = row 只能得到最后一次的值

最后是打算先转为字符串,传过去再转成对象。

但是直接进行JSON.stringify(row) 传值还是传不过去提示  EditViewById('{ ,这里没有细究,直接用了encodeURI解决,如下:

    function actionFormatter(value, row, index) { 
        var id = value;
        // datass = row;
       var datas = encodeURI(JSON.stringify(row));

        var result = "";
        result += "<a href='javascript:;' class='btn btn-xs green' onclick=\"EditViewById('" + datas + "', view='view')\" title='查看'><span class='glyphicon glyphicon-search'></span></a>";
        result += "<a href='javascript:;' class='btn btn-xs blue' onclick=\"EditViewById('" + datas + "')\" title='编辑'><span class='glyphicon glyphicon-pencil'></span></a>";
        result += "<a href='javascript:;' class='btn btn-xs red' onclick=\"DeleteByIds('" + id + "')\" title='删除'><span class='glyphicon glyphicon-remove'></span></a>";

        return result;
    }

总结:先将json对象转为字符串(JSON.stringify(obj))再将字符串编码(encodeURI(jsonstr)),传过去之后再先解码(decodeURI(jsonstr)),再转成json对象(JSON.parse(jsonstr))。

 

 

 

 

拓展:escape() 函数可对字符串进行编码,这样就可以在所有的计算机上读取该字符串。

提示:可以使用 unescape() 对 escape() 编码的字符串进行解码。

注释:ECMAScript v3 反对使用该方法,应用使用 decodeURI() 和 decodeURIComponent() 替代它。

 

posted @ 2018-08-24 15:36  为知  阅读(1011)  评论(0编辑  收藏  举报