Javascript选中/取消选中所有复选框并将值写入文本区域

Javascript check/uncheck all checkboxes and write values to textarea

本文关键字:区域 文本 复选框 选中 取消 Javascript      更新时间:2023-09-26

这是我的第一个js脚本,所以请温柔地对待我:)

问题是,当我单击"全选"按钮时,所有复选框都被选中,但它不会将值写入文本区域,如果我单击单个复选框,则会添加/删除值,这没关系,我只是停留在"全选/取消选中所有"按钮上。

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);
    }
}

您只需要手动调用另一个方法。我在你的小提琴里试过了。

您忘记在check()和uncheck()函数中调用movetext()函数。在您选中/取消选中后添加此项:

movetext(chk[i].value);