`
bergman
  • 浏览: 8475 次
  • 性别: Icon_minigender_1
  • 来自: 济南
文章分类
社区版块
存档分类
最新评论

去掉get方式的URL中空的参数

阅读更多
当然,用post提交就没有任何参数了,但这不符合HTTP的规范,查询嘛,就得用get方式才好,但是get方式不够智能,查询表单中用户可能一个条件也没设置,一点查询,URL上跟一大串空参数如"?a=&b=&user=&q="很难看,我希望实现:如果用户一个条件也没选,那URL后面什么参数也不带,如果选了某个参数,URL上只带这个参数,不带任何空值的参数。

我想,唯一的方式就是不使用form,而是把非空的查询域手工组装一个URL,然后window.location.src=这个URL,但这种作法比起查询表单提交来看比较另类,所以需要有一个很强的组件把这个过程规范起来,否则开发团队自己写js实现会乱套的,代码质量和风格无法保证,本着不重复制造轮子的态度,先问一下有没有能干这个活的jquery组件啊

另外,查询表单有这种情况:有两个域,一个隐藏用于记录真实的参数,另一个显示用户的选择,这个域上点击时会弹出窗口、或出现ajax提示下拉框,用户选中一条后,其中文名称显示在该域,该记录的ID则赋给隐藏域,提交查询时,应只提交隐藏域,那个显示域其实没有用处,但默认的get提交就会全部提交了,URL会很长很难看,如果用组件自组URL就没这个问题了。

有能干这个活的jquery组件最好,没有的话只好自己实现一下,但有点信心不足,其实要考虑很多的,使用者代码怎么写?如何更简单和清晰?text\radio\checkbox\file等不同的域的取值?简单封装与灵活性的平衡等。嗯,我先抛块砖,说说我的想法:
要求开发者把所有的查询域放在一个容器如div中,每个域都要有一个id,jquery就可以找到并控制它们了,但不是所有容器中的域都是查询条件,所以开发者应显式的声明,但是显式的声明的话,就不必把所有域都放在某个容器中了,这样也好,比如除了查询表单中的查询域外,下面的翻页域其实也是一种查询条件,一起放在声明中就统一了,声明代码可以这样写:
javaeye 写道

<script type="text/javascript">
//声明查询域列表,其中的域如非空则组为URL,要声明域的ID和类型,不同类型取值不同吗?
//格式为$.getMethodForm(url,[fields..],target);提交地址、域列表、目标帧(省略为_self)
$.getMethodForm("save.jsp",[{id:"field1",type:"text"},{id:"field2",type:"checkbox"},{id:"field3",type:"radio"]);
//有点复杂啊,如果能省略类型就简单了,像下面这一行写的:
//$.getMethodForm("save.jsp",["field1","field2","field3"]);
</script>

按钮上的代码可以这样:
引用

<button type="button" onclick="$.getMethodForm.submit">保存</button>

组件提交时会组装为:window.location.src=url?filed1=xxxx形式执行。

请大家讨论,我还没写呢,先集思广益吧。欢迎高手奉献代码。
分享到:
评论

相关推荐

    URL参数拼接类

    URL参数拼接, URL参数拼接, URL参数拼接, URL参数拼接, URL参数拼接

    java实现对象转化为get请求的param参数String字符串

    java实现对象转化为get请求的param参数String字符串,本人自测非常好用,一般对象可以转化键值对的格式,但是最近项目需要自己手动拼接对象作为get请求的参数,百度了一堆还不如自己写一个,欢迎各位使用,有什么...

    Java如何实现URL带请求参数(get/post)及得到get和post请求url和参数列表的方法

    本文将深入探讨如何在Java中实现URL带请求参数(GET/POST)以及如何获取这两种请求的URL和参数列表。 首先,我们来看如何发送带有参数的GET和POST请求。在Java中,我们可以使用`java.net.URL`和`java.net....

    pb8888_GetURL_

    标题 "pb8888_GetURL_" 暗示我们关注的是一个与“pb”(可能是Protocol Buffers或ProtoBuf的简写)相关的程序,它调用了名为"Webservicedemo"的服务来执行一个名为"GetURL"的功能。描述进一步确认了这一点,说明这是...

    php获取URL中带#号等特殊符号参数的解决方法

    如果参数值中包含如井号(#)等特殊符号,它们会被浏览器按照URL的语法规则进行解析,这就导致直接从$_GET全局数组中获取的值不完整或错误。 例如,当URL参数值中包含井号(#)时,井号后的内容会被解析为URL片段标识符...

    URL参数加密解密(java版)

    在Java开发中,URL参数加密解密是网络安全的重要环节,特别是在J2EE应用程序中,确保数据传输的安全性至关重要。URL参数通常包含用户敏感信息,如登录凭证、交易详情等,因此需要进行加密处理以防止数据在传输过程中...

    关于处理GET方式提交的含有特殊字符的参数

    曾经有一位朋友遇到这样一个问题,一产品...今日闲暇就整理了一下如何处理GET方式提交的含有特殊字符的参数,以表内心的愧疚。 特殊特殊字符的含义 ———————————————————————————— 字符 

    以GET或者POST方式向网页提交参数

    以GET或者POST方式向网页提交参数!我们知道如 果是GET的请求方式,那么所有参数都直接放到页面的URL后面用问号与页面地址隔开,每个参数用&隔开

    js获取url参数.rar url参数获取

    这个函数首先去除查询字符串的问号,然后通过`split('&')`将参数拆分为数组,再对每个参数进行拆分并解码值,最后存储到一个对象中。 ### 3. 使用`location.search.match()`方法 除了上述方法,还可以利用正则匹配...

    Go语言中的gin框架之GET/POST请求参数接收传值(五)

    在Go语言中,Gin框架是一个...总结,Gin框架在处理GET和POST请求参数时提供了多种方法,包括从URL查询字符串、JSON请求体以及Form数据中获取参数。这使得Gin成为构建Web服务的强大工具,特别是在Go语言的生态系统中。

    GET方法URL中传递中文参数乱码的解决方法

    然而,当我们在GET请求的URL中直接传递包含中文字符的参数时,可能会遇到乱码问题。这是因为不同系统、浏览器和服务器对字符编码的支持不一致,导致在传输过程中中文字符无法正确解析。以下是对这个问题的深入探讨和...

    jquery获取URL中参数解决中文乱码问题的两种方法

    方法一是利用正则表达式来匹配和解析URL参数,这是一种相对直接且有效的方式。具体实现步骤如下: 1. 定义一个名为 `getQueryString` 的函数,该函数接受一个参数名作为输入。 2. 在函数内部创建一个正则表达式对象...

    HTTP GET/POST传递参数

    介绍如何通过HttpClient模块来创建Http连接,并分别以Http GET与Http POST方法来传递参数,连接之后取回Web Server的返回网页结果。重点是如何使用HttpClient的模块来完成Http的请求与应答。 分享参考自Android SDK...

    geturl.rar

    标题“geturl.rar”可能指的是一个包含用于获取网络资源的程序或脚本的压缩文件。在IT领域,"geturl"通常与HTTP协议中的GET请求有关,这是浏览器或其他客户端向服务器请求数据时最常用的方法。这个文件可能是某种...

    vue 获取url参数、get参数返回数组的操作

    这是vue过滤器 获取url参数,返回数组 Vue.prototype.$url=function(){ var url = decodeURIComponent(location.search); //获取url中?符后的字串 var theRequest = new Object(); if (url.indexOf(?) != -1) { ...

    service_java接口远程调用_get、post、带参数远程调用_

    - **PathValue方式传参**:对于GET请求,若参数作为路径的一部分,可以通过URL构造器动态构建URL,例如`http://example.com/api?param1=value1&param2=value2`。Java代码中,可以使用`java.net.URL`和`java.net....

    GetUrl.zip

    通过这种方式,我们可以灵活地扩展UiPath的工作流程,实现更复杂的功能,如与Web服务交互,获取和处理URL数据。记得在实际应用中,一定要考虑错误处理和异常情况,以确保工作的稳健性。此外,对于安全性,确保不从不...

    GO接收GET/POST参数及发送GET/POST请求的实例详解

    GET 和 POST 是我们最常用的两种请求方式,今天讲一讲如何在 golang 服务中,正确接收这两种请求的参数信息。 处理GET请求 1.1 接收GET请求 //接收GET请求 func Get(writer http.ResponseWriter , request *...

    C# WebApi Get请求方式传递实体参数的方法示例

    在WebApi中,Get请求方式可以传递实体参数,但是一般情况下,我们会将参数附加到Url后面,称为QueryString。这种方式简单、方便,但只适合参数比较少的情况。如果需要传递比较多、比较复杂的参数,就需要使用实体类...

    Express获取get和post传过来的参数

    GET请求通常用于获取资源,其参数通常包含在URL的查询字符串中。在Express中,我们可以使用`req.query`对象来获取GET请求的参数。例如,假设我们有一个路由`/search`,用户通过`?q=someKeyword`来发送GET请求,我们...

Global site tag (gtag.js) - Google Analytics