当前位置: 代码迷 >> Java Web开发 >> Jquery 整合struts1.2 传参数的有关问题(续)
  详细解决方案

Jquery 整合struts1.2 传参数的有关问题(续)

热度:485   发布时间:2016-04-17 17:17:35.0
Jquery 整合struts1.2 传参数的问题(续)
var item = $('input[@name=duration][@checked]').val();
$('#showForm').action = "/action/employee.do?method=queryPersonalMeasure&duration_id='"+item+"'"+'&duration_id1='+item;
$('#showForm').submit();

后台request.getParamter("duration_id") 死也获取不到参数,大家有没有碰到过。。。。。。。。。。。。。。

Jquery和struts1.2整合后,Form提交时,如何把参数带过去,注意:不是Ajax,就是一般的提交到后台处理,为什么用上面那种写法,参数无法取到呢?加了个Jquery,连struts以前form.action 指定URL(包括参数)然后submit()就不行了呢?


分不够再加

------解决方案--------------------
'"+item+"'"+'&duration_id1='+item;
为何要加单引号呢。
看你的提交路径是否正确
------解决方案--------------------
你用alert把item值打印出来看下有没有值
------解决方案--------------------
关注中.......
------解决方案--------------------
$('#showForm').action = "/action/employee.do?meth.......

你这么写是在showForm的映射的jquery对象加上了一个action属性,而不是对原始的DOM对象form中的action中赋值,所以你这么写和没写一样

你要么document.getElementByID('showForm').action=.....
要么$('#showForm').get(0).action=......

其中get()方法是取到jquery中的原始DOM对象,具体用法请查一下API

另:那个ITEM不能加引号,否则你取的值就永远是item字符串了

------解决方案--------------------
Jquery 没用过,帮LZ顶下。。。。。。。。。
------解决方案--------------------
$('#showForm').action = "/action/employee.do?method=queryPersonalMeasure&duration_id='"+item+"'"+'&duration_id1='+item; 

改成:

var str = "/action/employee.do?method=queryPersonalMeasure&duration_id='"+item+"'"+'&duration_id1='+item;
$('#showForm').attr("action",str);
------解决方案--------------------
1 请把单引号去掉

2 jquery新版本(似乎是1.2.6以后)已经不支持@形式,请吧@去掉,改为
var item = $('input[name=duration][checked]').val(); 

3 如果是checkbox,该语句只能得到第一个值
------解决方案--------------------
form的action属性不能加参数。。
为每个参数提供一个隐藏表单域, 使用jQuery动态修改他就行了..

------解决方案--------------------
探讨
你说的不对,这样可以提交,参数可以传递,我本机可以了,不过传过去的URL参数,变量名给我改了名字,变量名是单选按钮的ID,而不是我自己手写的duration_ID

------解决方案--------------------
up............
------解决方案--------------------
var item = $('input[name=duration][checked]').val(); 
var item = $('input[name=duration]:checked')得到的是一个数组对象。 

------解决方案--------------------
学习.
------解决方案--------------------
1 请把单引号去掉 

2 jquery新版本(似乎是1.2.6以后)已经不支持@形式,请吧@去掉,改为 
var item = $('input[name=duration][checked]').val(); 

3 如果是checkbox,该语句只能得到第一个值
------解决方案--------------------
楼主的传递方式是错误的,post传递的都是单值的,只不过是如果key相同的话,后台可以用数组方式接收
不是传递javascript的数组,而是这种形式传递参数
url: url+"/action/manager.do",
data: 'str=a&str=b&str=c......', 

这样后台用String str[] = request.getParameterValues("str");不会有问题
------解决方案--------------------
response.setHeader("Content-Type", "text/plain;charset=UTF-8"); 设置的有问题,不是文本时json
另外调试一下,返回的是否是json的规则
  相关解决方案