请各位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")应该得到的是一个数组
- 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部分的代码