请各位js高手进来指导下

请各位js高手进来指导下

问题描述:

我在js中用[code="java"]
document.getElementsByName("idFields").value=idFields;
document.form.submit();[/code]
为什么在servlet中用[code="java"]request.getParameter("idFields");[/code]得到的是null而[code="java"]document.getElementsByName("idFields").value=idFields;
alert(document.getElementsByName("idFields").value);
document.form.submit()[/code]
确有值。
注:这个情况有时出现,有时不出现。但alert后不会出现

大概就是因为 document.getElementsByName("idFields") 返回的是数组,给数组赋值没赋进去,而alert之后js引擎强制转化了。
document.getElementsByName("idFields").value = xxxx
这个xxx是赋值到了 数组上 而并没有赋值到你的目标元素上,所以提交不到服务器端
document.getElementsByName("idFields")[0].value 应该就没问题了,不过正确的用法应该还要判断下 document.getElementsByName("idFields")取得元素是否大于0

idFields 是数组数据?

有时候跟web服务器有关系,之前碰到过,在tomcat下没有问题,在weblogic就有问题。

哥啊。。肯定得到是NULL啊这种方式获取document.getElementsByName("idFields")应该得到的是一个数组

  1. request.getParameter("idFields"); 并且获取的方式也不对。应该是这种request.getParameterValues("")如果按照你贴出了的

难道是跟IE8有关系,本人一直使用IE6,没有遇到过这种问题。

建议在IE6下测试一下看看。

提交之前将action后面加上?idFields=idFields,在进行submit

不要用document.getElementsByName,使用document.getElementById吧。
[code="javascript"]document.getElementsByName("idFields").value=idFields;

document.form.submit(); [/code]
你的form表单的name属性是"form"?最好不要用"form"这种关键字来给form命名。
用下面这种方式提交表单,可以省掉很多麻烦,包括浏览器的兼容问题
document.forms['formname'].submit();

标准Javascript里是没有getElementsByName的。
只有getElementById和getElementsByTagName

你这个需要循环迭代赋值。你可以贴出HTML部分的代码