当一个框未被选中时,它会清除复选框中先前填充的文本

when a box is unchecked it clears the previously populated text from checkbox

如何在取消选中复选框时清除复选框中先前填充的文本?

下面的代码列表是当您选中一个框并在文本区域中填充文本时。

$('input:checkbox').click(function(){
    var tb = "#"+$(this).attr('rel');
    if($(this).is(":checked"))
        $(tb).append(this.name + "\n");

        else($(tb)).removeAttr(":checked");
})

您可以使用 replace() 函数从文本字段中删除名称。

$('input:checkbox').click(function() {
  var tb = "#" + $(this).attr('rel');
  let text_to_add = this.name + "\n";
  if ($(this).is(":checked")) {
    $(tb).append(text_to_add);
  } else {
    let remove = this.name + "\n";
    $(tb).text(function(i, text) {
      return text.replace(text_to_add, '');
    });
  }
})

以下脚本汇集了选中的复选框的 name 属性值,并将它们放入由复选框的 rel 属性寻址的文本框中:

$('input:checkbox').click(function(){
    var tb = $(this).attr('rel');
     $("#"+tb).val($("[rel="+tb+"]:checked").map((i,e)=>e.name).get().join("\n"))

})
textarea {height:50px}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<label><input name="one" type="checkbox" rel="mytext">one</label>
<label><input name="two" type="checkbox" rel="mytext">two</label>
<label><input name="three" type="checkbox" rel="mytext">three</label><br>
<textarea id="mytext"></textarea>
<br>
<label><input name="four" type="checkbox" rel="text2">4</label>
<label><input name="five" type="checkbox" rel="text2">5</label>
<label><input name="six" type="checkbox" rel="text2">6</label><br>
<textarea id="text2"></textarea>