当然,用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等不同的域的取值?简单封装与灵活性的平衡等。

解决方案 »

  1.   

    无语,难看也算需求啊。jquery想来不会出这样的插件啦
    1.建议你试下ISAPI Rewrite
    2.建议你把不想传的域去掉NAME属性
      

  2.   

    印象中如果某个域设置成disabled="true"的话就不会被提交了。所以提交之前检查哪些域是用户不想查询的,disable掉就可以了。
      

  3.   

    zjsfdxbao说的去掉name属性果然起作用!不需要提交的域就不会提交了。
    ISAPI Rewrite 这种url重写的方式只是让URL看起来好看,而我说的需求不仅是好看,同时也是一个幂等的请求,光好看就没有意义了。你觉得这完全没有意义?
    disabled="true"改变了显示规则,显然是不能用的。