javascript - 复选框文本到文本区域

标签 javascript html

我需要有很多可以通过复选框选择的句子,它们将立即出现在它们下面的文本区域中。在文本区域上可以更改句子,然后将文本区域导出为 docx 和 pdf。我在 2007 年从 Sitepoint.com 论坛上发现了这个不错的脚本,作者是 dinheiro

每个句子都应该独占一行,并且句子之间应该换行。添加句子时一切都很顺利,但删除句子时,句子之间会丢失换行符。我对原始脚本进行了一些更改

df[1][0].value+=this.name+'\n\n';

原来是df[1][0].value+=this.name+' ';

并添加了一行df[1][0].value=df[1][0].value.replace(/\n/g, '');

任何人都可以帮忙解决这个问题,或者有没有人有更好的解决方案来实现这个?谢谢!

window.onload = function() {
  df = document.forms;
  inp = df[0].getElementsByTagName('input');
  for (c = 0; c < inp.length; c++) {
    if (inp[c].type == 'checkbox') {
      inp[c].onclick = function() {
        if (this.checked == true) {
          df[1][0].value += this.name + '\n\n ';
        } else {
          df[1][0].value = df[1][0].value.replace(/\n/g, '');
          df[1][0].value = df[1][0].value.replace(this.name + ' ', '');
        }
      }
    }
  }
}
<form action="#">
  <div>
    <input type="checkbox" name="- foo" />foo<br>
    <input type="checkbox" name="- blah" />blah<br>
    <input type="checkbox" name="- dodah" />dodah<br>
  </div>
</form>

<form action="#">
  <div>
    <textarea cols="20" rows="10"></textarea>
  </div>
</form>

如何将复选框文本添加到文本区域,编辑文本区域上的文本,添加一些额外的文本并将其与其他字段一起发送到处理程序?

最佳答案

问题是这一行删除了新行字符,这使得文本出现在同一行中

df[1][0].value=df[1][0].value.replace(/\n/g, '');

因此,我只提供与要删除的特定单词相关的换行符:

df[1][0].value=df[1][0].value.replace(this.name+'\n\n','');

这是工作代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
        "http://www.w3.org/TR/html4/strict.dtd">
    <html>
    <head>
    <title></title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    
    <script type="text/javascript">
    
    window.onload=function() {
        
        df=document.forms;
        inp=df[0].getElementsByTagName('input');
    for(c=0;c<inp.length;c++) {
    if(inp[c].type=='checkbox') {
        inp[c].onclick=function() {
        debugger;
    if(this.checked==true){
        df[1][0].value+=this.name+'\n\n';
    }
    else {
        df[1][0].value=df[1][0].value.replace(this.name+'\n\n','');
          }
         }
        }
       }
      }
    </script>
    
    </head>
    <body>
    
    <form action="#">
        <div>
            <input type="checkbox" name="- foo"/>foo<br>
            <input type="checkbox" name="- blah"/>blah<br>
            <input type="checkbox" name="- dodah"/>dodah<br>
        </div>
    </form>
    
    <form action="#">
        <div>
            <textarea cols="20" rows="10"></textarea>
        </div>
    </form>
    
    </body>
    </html>

关于javascript - 复选框文本到文本区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51812591/

相关文章:

javascript - Umbraco 属性编辑器不工作

javascript - Cordova/Phonegap 3.4.0 iOS 7.1 - 键盘/Web View 问题

javascript - Javascript 中的字符串比较失败

javascript - 当 document.activeElement 为 body(或 null)时,无法将焦点设置在输入上

javascript - 显示与某个 id 相关的 div?

html - 如何利用手机浏览器中的全部空间

javascript - 清理 Javascript/Nodejs 代码

javascript - 混色器 (javascript)

javascript - 查询 : link title attribute unchange

javascript - 使用 Google Polymer 平台时未定义 _polyfilled?