js 获取checkbox的值出现undefined

a363984349 2013-12-05 07:07:54

html代码如下:
<td><div id="xuanxiang">
<%
String str = list.get(0).getquestioncontent();
String[] contents = str.split("\\|");
for (int i = 0; i < contents.length; i++) {
%>
<br/>
<input type="checkbox" />
<input type="text" value="<%=contents[i]%>"/>
<input type="button" value="删除"/>
<%
}
%>
</div></td>

JS代码如下:
function xuanxiang()
{
var inputdiv = document.getElementById("xuanxiang");
var lis=inputdiv.childNodes;
var str="";
var ans="";
for(var i=0;i<lis.length;i++){
if(lis.item(i).type=="text"){
str+=lis.item(i).value;
str+="|";

}
if(lis.item(i).type=="checkbox"){
if(lis.item(i).checked==true){
ans+=lis.item(i+1).getValue;
ans+="|";

}
}
}
alert(str);
var xuan=document.getElementById("xuan");
xuan.setAttribute("value", str);
var answer=document.getElementById("answer");
answer.setAttribute("value", ans);
alert(ans);
document.getElementById("timu").submit();
}
问题就是text的值得能获取到,但是作为答案的选项的值就只显示:undefined
...全文
559 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzuning 2013-12-05
  • 打赏
  • 举报
回复
那倒是可以 if(lis.item(i).checked==true){ ans+=lis.item(i+1).value; } 不过不小心又在中间加了点什么,就乱套了
a363984349 2013-12-05
  • 打赏
  • 举报
回复
引用 4 楼 xuzuning 的回复:
服务端代码中 <input type="checkbox" /> 既不命名,也不赋值 自然就只能是 on、off 了 没有被选中的复选框不会被提交,被提交的同名复选框在服务端是一个数组 用 js 取值也需要遵守这一规则 况且 jq 提供了 serialize (表单序列化方法),你可以参考一下 不必在这些小轮子的制造上劳神费力
原来赋值给checkbox就可以了,谢谢斑竹,不胜感激
a363984349 2013-12-05
  • 打赏
  • 举报
回复
引用 4 楼 xuzuning 的回复:
服务端代码中 <input type="checkbox" /> 既不命名,也不赋值 自然就只能是 on、off 了 没有被选中的复选框不会被提交,被提交的同名复选框在服务端是一个数组 用 js 取值也需要遵守这一规则 况且 jq 提供了 serialize (表单序列化方法),你可以参考一下 不必在这些小轮子的制造上劳神费力
但是我并不是想获取checkbox的值,只是想获取checkbox旁边那个text的值,就是用户选了哪个checkbox,就提取旁边那个text的值的意思
xuzuning 2013-12-05
  • 打赏
  • 举报
回复
服务端代码中 <input type="checkbox" /> 既不命名,也不赋值 自然就只能是 on、off 了 没有被选中的复选框不会被提交,被提交的同名复选框在服务端是一个数组 用 js 取值也需要遵守这一规则 况且 jq 提供了 serialize (表单序列化方法),你可以参考一下 不必在这些小轮子的制造上劳神费力
a363984349 2013-12-05
  • 打赏
  • 举报
回复
引用 1 楼 xuzuning 的回复:
if(lis.item(i).checked==true){ ans+=lis.item(i+1).getValue; 为什么是 lis.item(i+1) getValue 又是什么?
我改了,是我之前乱改的。但是现在作为答案的选项的值就显示:on
a363984349 2013-12-05
  • 打赏
  • 举报
回复
我改了,是我之前乱改的。但是现在作为答案的选项的值就显示:on
xuzuning 2013-12-05
  • 打赏
  • 举报
回复
if(lis.item(i).checked==true){ ans+=lis.item(i+1).getValue; 为什么是 lis.item(i+1) getValue 又是什么?
26.在JS中如何获取id为username的文本框的,如何获取名字为username的文本框的,用JS代码表示(2分) var userName=document.getElementsByName("username")[0].value; var username=document.getElementById("username").value; 27.用JS代码清空所有文本框的,用JS代码表示(3分) var inputs = document.getElementsByTagName("input"); for( var i = 0 ; inputs.length ; inputs++ ) { if(inputs[i].type == "text" ) { inputs[i].value = ""; } } 28.JS中用什么方法去读取DIV标记的HTML内容,和文本内容,用代码表示,假设这个DIV的id为div1(2分) var div= document.getElementById(“div1”)[removed]; 29.用JS实现一个id为book的div的显示和隐藏(1分) .解释evel函数 (1分) evel函数可以接受一个字符串作为参数,并把此字符串当做一段javascript代码去执行,如果字符串执行结果是一个则返回此,否则返回undefined。如果参数不是一个字符串,则直接返回该参数 40.数组的join方法和字符串的split方法的作用是什么 (2分) join()把数组中的所有元素放入一个字符串中 参数separator默认逗号为分隔符 split() 将一个字符串分割为子字符串,将结果作为字符串数组返回,若字符串中存在多个分割符号,亦可分割。 41.如何判断一个对象的为null,用代码实现,假设对象的名字为obj (1分) var objld=doucment.getElementsByName(“obj”); if (objld==null){……} 42.用代码实现动态生成一个按钮,并添加到一个id为div1的标签中 (2分)

87,992

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧