Javascript check/uncheck 所有复选框并将值写入文本区域

Javascript check/uncheck all checkboxes and write values to textarea

这是我的第一个 js 脚本,请对我温柔点:)

问题是当我点击选中所有按钮时,所有复选框都被选中但它不会将值写入文本区域,如果我单击单个复选框然后值是 added/removed 没关系,我我只是停留在检查 all/uncheck 全部按钮上。

http://jsfiddle.net/LAcgE/74/

function check(chk) {
    for (i = 0; i < chk.length; i++)
    chk[i].checked = true ;
}

function uncheck(chk) {
    for (i = 0; i < chk.length; i++)
    chk[i].checked = false ;
}

var itemsAdded = Array();

function movetext(text) { 
    var i = itemsAdded.indexOf(text)
    if ( i >= 0) { 
        itemsAdded.splice(i,1); 
    }
    else {
        itemsAdded.push(text);
    }
    document.getElementById("result").value=itemsAdded.join("\n"); 
}
<form action='#' method='post'>

  <input type='checkbox' value='aaa' name="add" onclick='movetext(this.value)'/>a
  <input type='checkbox' value='bbb' name="add" onclick='movetext(this.value)'/>b
  <input type='checkbox' value='ccc' name="add" onclick='movetext(this.value)'/>c
  <input type='checkbox' value='ddd' name="add" onclick='movetext(this.value)'/>d
  <input type='checkbox' value='eee' name="add" onclick='movetext(this.value)'/>e
    
  <input type="button" value="check all" onClick="check(this.form.add)">
  <input type="button" value="uncheck all" onClick="uncheck(this.form.add)">
    
  <textarea id="result" rows="8" cols="40"></textarea>
  <input type="submit" value="Submit">

</form>

用这个替换你的检查和取消检查功能

function check(chk) {
    for (i = 0; i < chk.length; i++)
    {
        chk[i].checked = true ;
        movetext(chk[i].value);
    }
}

function uncheck(chk) {
    for (i = 0; i < chk.length; i++)
    {
        chk[i].checked = false ;
        movetext(chk[i].value);
    }
}

您只需手动调用另一个方法即可。我在你的 fiddle.

中试过了

您忘记在 check() 和 uncheck() 函数中调用 movetext() 函数。 在执行 check/uncheck 之后添加:

movetext(chk[i].value);