js多选框 取值赋值问题

如何能把 取消那个checked的值 赋值到第2个文本框里 而不是checked==false全进去
求助

<input type="checkbox" name="C1" id="a1" value="11" checked onclick="ab()">11
<input type="checkbox" name="C1" id="a2" value="22" checked onclick="ab()">22
<input type="checkbox" name="C1" id="a3" value="33" onclick="ab()">33
<input type="checkbox" name="C1" id="a4" value="44" onclick="ab()">44
<input type="text" id="b" value="11,22" size="20" >
<input type="text" id="d" value="" size="20" >
<input type="button" value="按钮" name="B3" onclick="abc()">
<script type="text/javascript">
var b=document.getElementById("b").value;
var d=document.getElementById("d").value;

function ab()
{
var c=document.getElementsByName("c1");
var b=document.getElementById("b");
var d=document.getElementById("d");
d.value="";
b.value="";
for(var i=0;i<c.length;i++)
{
if(c[i].checked==true)
{
b.value+=c[i].value+",";

}
}
for(var k=0;k<c.length;k++)
{

if(c[k].checked==false)
{

d.value+=c[k].value+",";
}

}
}
function abc()
{
if (b==document.getElementById("b").value)
{
alert("1");
}
else
{
alert("2");
}
}

</script>
现在1和2是checked 再一点次的时候取消checked 同时把值赋给第2个文本框中
而不是没选中的值都进去 或者 是每次就进1个值
谢谢回答 求助

第1个回答  2011-06-24
<input type="checkbox" name="C1" id="a1" value="11" checked onclick="ab()" >11
<input type="checkbox" name="C1" id="a2" value="22" checked onclick="ab()" >22
<input type="checkbox" name="C1" id="a3" value="33" onclick="ab()" >33
<input type="checkbox" name="C1" id="a4" value="44" onclick="ab()">44
<input type="text" id="b" value="11,22" size="20" >
<input type="text" id="d" value="" size="20" >
<input type="button" value="按钮" name="B3" onclick="abc()">
<script type="text/javascript">
var b = document.getElementById("b").value;
var d = document.getElementById("d").value;

var checkboxes = document.getElementsByName("c1");
for (var idx = 0; idx < checkboxes.length; idx++) {
if (checkboxes[idx].checked == true)
checkboxes[idx].setAttribute("saved", "true");
}

function ab() {
var c = document.getElementsByName("c1");
var b = document.getElementById("b");
var d = document.getElementById("d");
d.value = "";
b.value = "";
for (var i = 0; i < c.length; i++) {
if (c[i].checked == true) {
c[i].setAttribute("saved", "true");
b.value += c[i].value + ",";

}

}
for (var k = 0; k < c.length; k++) {

if (c[k].checked == false && c[k].getAttribute("saved")=="true" ) {

d.value += c[k].value + ",";
}

}
}
function abc() {
if (b == document.getElementById("b").value) {
alert("1");
}
else {
alert("2");
}
}

</script>本回答被提问者采纳
第2个回答  2011-06-23
<input type="checkbox" name="C1" id="a1" value="11" checked onclick="ab(this)">
11
<input type="checkbox" name="C1" id="a2" value="22" checked onclick="ab(this)">
22
<input type="checkbox" name="C1" id="a3" value="33" onclick="ab(this)">
33
<input type="checkbox" name="C1" id="a4" value="44" onclick="ab(this)">
44
<input type="text" id="b" value="11,22" size="20" >
<input type="text" id="d" value="" size="20" >
<input type="button" value="按钮" name="B3" onclick="abc()">
<script type="text/javascript">
var b=document.getElementById("b").value;
var d=document.getElementById("d").value;

function ab(bs){
var c=document.getElementsByName("c1");
var b=document.getElementById("b");
var d=document.getElementById("d");
d.value="";
b.value="";
if(bs.checked==false){
d.value=bs.value+",";
}
for(var i=0;i<c.length;i++){
if(c[i].checked==true)
{
b.value+=c[i].value+",";
}
}
}
function abc()
{
if (b==document.getElementById("b").value){
alert("1");
}else{
alert("2");
}
}

</script>

是这样么?追问

第2个框里值也是数组的 11,22这样的
你这个只是11 在点一下就盖了 谢谢回答

第3个回答  2011-06-23
在第一次赋值后,如果只需要赋值一次,加一个命令return;
就O了
第4个回答  2011-06-23
function checkAll(name)
{
var el = document.getElementsByTagName('input');
var len = el.length;
for(var i=0; i<len; i++)
{
if((el[i].type=="checkbox") && (el[i].name==name))
{
el[i].checked = true;
}
}
}
function clearAll(name)
{
var el = document.getElementsByTagName('input');
var len = el.length;
for(var i=0; i<len; i++)
{
if((el[i].type=="checkbox") && (el[i].name==name))
{
el[i].checked = false;
}
}
}