bootstrap表格传递复杂文本参数问题

      在Html前端页面使用bootstrap展示数据,对单元格进行函数调用传递参数时,如果参数串包涵特殊字符,往往会导致调用失败。这时可以考虑用base64编码进行转义。

关键部分代码如下:

<script th:inline="javascript">
    $(function() {
        var options = {
            url: xxx,
            modalName: xxx,
            columns: [
                {
                    title: "序号",
                    formatter: function (value, row, index) {
                        return $.table.serialNumber(index);
                    }
                },
                {
                    field: 'serviceName',
                    title: '服务名'
                },
                {
                    field: 'isEnable',
                    title: '启用',
                    formatter: function (value, row, index) {
                        if ( value == '1' )
                            return '启用';
                        else
                            return '待启用';
                    }
                },
                {
                    field: 'dataValue',
                    title: '复杂文本'
                },
                {
                    title: '调用示例',
                    align: 'center',
                    formatter: function (value, row, index) {
                        var actions = [];
                        if ((row.isEnable == 1) )
                            actions.push('<a class="btn btn-success btn-xs " href="javascript:void(0)" onclick="doShowData(\'' + encode(row.dataValue) + '\')"><i class="fa fa-edit"></i>查看</a> ');
                        return actions.join('');
                    }
                }]
        };
        $.table.init(options);
    });
    //字符串转base64
    function encode(str){
        var encode = encodeURI(str);
        var base64 = btoa(encode);
        return base64;
    }

    // base64转字符串
    function decode(base64){
        var decode = atob(base64);
        var str = decodeURI(decode);
        return str;
    }
    function doShowData(jsonData) {
        alert(decode(jsonData));
    }
</script>

注:部分代码采用若依RuoYi框架

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Bootstrap 弹窗中传递参数可以使用 data-* 属性,你可以在弹窗的触发元素中添加 data-* 属性来传递参数,然后在弹窗中使用 JavaScript 获取这些参数。 例如,假设你要在弹窗中显示一个用户的信息,你可以在触发元素中添加 data-user-id 属性,然后在弹窗中使用 JavaScript 获取这个属性的值,再通过 Ajax 请求获取用户信息并显示在弹窗中。 触发元素的 HTML 代码: ``` <button type="button" class="btn btn-primary" data-toggle="modal" data-target="#userModal" data-user-id="123">查看用户信息</button> ``` 弹窗的 HTML 代码: ``` <div class="modal fade" id="userModal" tabindex="-1" role="dialog" aria-labelledby="userModalLabel"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <h4 class="modal-title" id="userModalLabel">用户信息</h4> <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">×</span> </button> </div> <div class="modal-body"> <!-- 这里显示用户信息 --> </div> </div> </div> </div> ``` 弹窗的 JavaScript 代码: ``` $('#userModal').on('show.bs.modal', function (event) { var button = $(event.relatedTarget); // 触发弹窗的按钮 var userId = button.data('user-id'); // 获取用户 ID var modal = $(this); // 发送 Ajax 请求并显示用户信息 $.ajax({ url: '/user/' + userId, success: function (data) { modal.find('.modal-body').html(data); } }); }); ``` 注意,data-* 属性的名称必须以 data- 开头,后面可以跟任何字符,例如 data-user-id、data-foo、data-bar 等。在 JavaScript 中使用 $(element).data('name') 可以获取 data-name 属性的值。在 Bootstrap 的弹窗中,可以使用 show.bs.modal 事件来在弹窗显示之前获取参数并进行处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值