浏览 3682 次
锁定老帖子 主题:去掉get方式的URL中空的参数
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-08-02
我想,唯一的方式就是不使用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形式执行。 请大家讨论,我还没写呢,先集思广益吧。欢迎高手奉献代码。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |