取消checkbox时相应的value值被抹去,点击几个复选框显示几value值不要重复;<!doctype html><html><head><meta charset="utf-8"><title>无标题文档</title></head><body><form><input type="checkbox" value="语文" onChange="check()">语文<input type="checkbox" value="数学" onChange="check()">数学<input type="checkbox" value="英语" onChange="check()">英语<input type="checkbox" value="物理" onChange="check()">物理<input type="checkbox" value="化学" onChange="check()">化学<input type="checkbox" value="生物" onChange="check()">生物</form><div id="content"></div><script> var content=document.getElementById("content"); var form=document.forms[0].elements; content.innerHTML=null; function check(){ //var cont=content.innerHTML; for(var i=0;i<form.length;i++){ if(form[i].checked){ content.innerHTML+=form[i].value } } } </script></body></html>
2 回答
已采纳
stone310
TA贡献361条经验 获得超191个赞
直接重写了一个,看下是不是这效果
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
</head>
<body>
<form>
<input type="checkbox" value="语文">语文
<input type="checkbox" value="数学" >数学
<input type="checkbox" value="英语" >英语
<input type="checkbox" value="物理" >物理
<input type="checkbox" value="化学">化学
<input type="checkbox" value="生物" >生物
</form>
<div id="content"></div>
<script>
window.onload=function(){
var arr=[];
var oldText="";
var content=document.getElementById("content");
var input=document.getElementsByTagName("input");
for(var i=0;i<input.length;i++){
input[i].index=i;
input[i].onclick=function(){
if(input[this.index].checked){
arr.push(input[this.index].value);
content.innerHTML=arr.join(" ") ; //分割符可自定
oldText=oldText+input[this.index].value;
}else if(input[this.index].checked==false){
for(var j=0;j<arr.length;j++){
if(arr[j]==input[this.index].value){
arr.splice(j,1);
content.innerHTML=arr.join(" ") ; //分割符可自定
};
};
};
};
};
}
</script>
</body>
</html>补充一个用你的布局做的吧
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
</head>
<body>
<form>
<input type="checkbox" value="语文" onChange="check()">语文
<input type="checkbox" value="数学" onChange="check()">数学
<input type="checkbox" value="英语" onChange="check()">英语
<input type="checkbox" value="物理" onChange="check()">物理
<input type="checkbox" value="化学" onChange="check()">化学
<input type="checkbox" value="生物" onChange="check()">生物
</form>
<div id="content"></div>
<script>
var content=document.getElementById("content");
var form=document.forms[0].elements;
function check(){
var oldT=""
var allChecked=false;
for(var i=0;i<form.length;i++){
if(form[i].checked){
content.innerHTML=oldT+form[i].value;
oldT=oldT+form[i].value;
allChecked=true;
}
}
if(allChecked==false){
content.innerHTML=null;
}
}
</script>
</body>
</html>但是后面这个点击排序有点问题,不是按照点击的顺序排而是按照原有的顺序排,因为你这个写法是每次点击后都要遍历,就相当于每次点击都刷空innerHTML,然后i从小到大重新排序
添加回答
举报
0/150
提交
取消
