JavaWeb 为a标签添加动态请求参数

简介: 版权声明:欢迎转载,请注明沉默王二原创。 https://blog.csdn.net/qing_gee/article/details/48683873 通常情况下,a标签的href属性只能通过?name=xiaofang&age=10这种形式添加请求参数,这在某种场景下并不能满足我们的需求,我们需要a标签的参数更能向form表单一样自如。
版权声明:欢迎转载,请注明沉默王二原创。 https://blog.csdn.net/qing_gee/article/details/48683873

通常情况下,a标签的href属性只能通过?name=xiaofang&age=10这种形式添加请求参数,这在某种场景下并不能满足我们的需求,我们需要a标签的参数更能向form表单一样自如。

代码

我们为其增加一个data属性,其data值指定为某一个元素id集合。

<a href="${ctx}/project/initPublishProduct?callbackType=forward&tabIndex=1" target="ajaxTodo" data="tabIndex" callback="ajaxDone" style="width: 100px;" class="btn btn-default">下一步</a>
<input type="hidden" id="tabIndex" value="${tabIndex}">
$.fn.extend({
    ajaxTodo : function() {
        return this.each(function() {
            var $this = $(this);
            $this.click(function(event) {
                var url = unescape($this.attr("href")).replaceTmById($(event.target).parents(".unitBox:first"));
                YUNM.debug(url);
                if (!url.isFinishedTm()) {
                    $.showErr($this.attr("warn"));
                    return false;
                }

                var dataId = $this.attr("data");

                if (dataId) {
                    if (dataId.indexOf(",") != -1) {
                        $.each(dataId.split(","), function(index, id){
                            if ($("#" + id) && $("#" + id).val()) {
                                addMoreParamForUrl(url, id, $("#" + id).val());
                            }
                        });
                    } else {
                        if ($("#" + dataId) && $("#" + dataId).val()) {
                            addMoreParamForUrl(url, dataId, $("#" + dataId).val());
                        }
                    }
                }

                var title = $this.attr("atitle");
                if (title) {
                    $.showConfirm(title, function() {
                        ajaxTodo(url, $this.attr("callback"));
                    });
                } else {
                    ajaxTodo(url, $this.attr("callback"));
                }
                event.preventDefault();
            });
        });
    },
});

我们先从a标签中获取data值,然后,根据data的值,获取隐藏域,然后再取隐藏域的值,封装到url中。

function addMoreParamForUrl(url, key, value) {
    if (url.indexOf("?") != -1) {
        url += "&" + key + "=" + value;
    } else {
        url += "?" + key + "=" + value;
    }
    return url;
}
相关文章
|
9月前
|
JavaScript Java 大数据
基于JavaWeb的销售管理系统设计系统
本系统基于Java、MySQL、Spring Boot与Vue.js技术,构建高效、可扩展的销售管理平台,实现客户、订单、数据可视化等全流程自动化管理,提升企业运营效率与决策能力。
|
11月前
|
SQL 前端开发 Java
JavaWeb 学习日记案例详解及 javaweb 完整项目案例实战指南
本文介绍了一个基于Spring Boot的JavaWeb企业员工管理系统完整案例,涵盖部门管理、员工管理、登录、异常处理、事务管理及AOP等核心功能实现,结合CSDN相关技术文章,提供详细技术方案与应用实例,适合JavaWeb开发者学习与参考。
681 0
|
前端开发 Java 数据库连接
【潜意识Java】深度解读JavaWeb开发在Java学习中的重要性
深度解读JavaWeb开发在Java学习中的重要性
362 4
|
前端开发 Java 应用服务中间件
Javaweb学习
【10月更文挑战第1天】Javaweb学习
187 2
|
安全 Java Android开发
JavaWeb解压缩漏洞之ZipSlip与Zip炸弹
JavaWeb解压缩漏洞之ZipSlip与Zip炸弹
884 5
|
移动开发 JavaScript 前端开发
Javaweb之Vue路由的详细解析
Vue.js是一款备受欢迎的前端框架,以其简洁的API和组件化开发模式著称。Vue Router作为其官方路由管理器,在构建单页面应用(SPA)时发挥关键作用,通过URL变化管理组件切换,实现无刷新过渡。本文将详细介绍Vue Router的基础概念、主要功能及使用步骤,帮助JavaWeb开发者快速掌握其工作原理及实践应用。
204 1
|
JSON JavaScript 前端开发
Javaweb中Vue指令的详细解析与应用
Vue指令提供了一种高效、声明式的编码方式,使得开发者可以更专注于数据和业务逻辑,而不是DOM操作的细节。通过熟练使用Vue指令,可以极大地提高开发效率和项目的可维护性。
170 3
|
安全 Java Android开发
JavaWeb解压缩漏洞之ZipSlip与Zip炸弹
JavaWeb解压缩漏洞之ZipSlip与Zip炸弹
616 2
|
JavaScript 前端开发 UED
Javaweb中Vue指令的详细解析与应用
Vue指令是Vue框架中非常强大的特性之一,它提供了一种简洁、高效的方式来增强HTML元素和组件的功能。通过合理使用这些指令,可以使你的JavaWeb应用更加响应用户的操作,提高交互性和用户体验。而且,通过创建自定义指令,你可以进一步扩展Vue的功能,使其更贴合你的应用需求。
189 2
|
设计模式 Java 关系型数据库
【Java笔记+踩坑汇总】Java基础+JavaWeb+SSM+SpringBoot+SpringCloud+瑞吉外卖/谷粒商城/学成在线+设计模式+面试题汇总+性能调优/架构设计+源码解析
本文是“Java学习路线”专栏的导航文章,目标是为Java初学者和初中高级工程师提供一套完整的Java学习路线。
1104 37