Javascript 用复选框中的值填充文本框

Javascript 用复选框中的值填充文本框,javascript,textbox,checkbox,Javascript,Textbox,Checkbox,这是我到目前为止的代码 <head> <script type="text/javascript"> function list(c,n,z) { s=document.form.marktext.value; if (c.checked) { if (s.indexOf(n)<0) s+=', '+n; } else { s=document.form.marktext.value.replace(', '+n,''); }

这是我到目前为止的代码

  <head>

  <script type="text/javascript">

  function list(c,n,z) {
   s=document.form.marktext.value;
  if (c.checked) {
  if (s.indexOf(n)<0) s+=', '+n;
  } else {
  s=document.form.marktext.value.replace(', '+n,'');
 }
  z=", ";
  if (s.substring(2) == z) s=s.substring(2);
  document.form.marktext.value=s;}



  function getchecked() {
      var newtxt = '';
      var chkbx = document.getElementsByTagName('input');

      for(var i = 0; i < chkbx.length; i ++) 
        {
          if(chkbx[i].type == 'checkbox' && chkbx[i].checked === true) {
          if(newtxt.length !== 0) {
            newtxt += ',';
            }
            newtxt += chkbx.innerHTML;
        }

  }

  document.form.marktext.value = newtxt;

  }

  </script>

  </head>


  <body>
  <form name="form">
  <input type="text" value="" name="marktext"><br>
  <input type="checkbox" name="mark" value="word" onclick="getchecked()">Word<br>
  <input type="checkbox" name="mark" onclick="getchecked()">Type<br>
 <input type="checkbox" name="mark" onclick="getchecked()">Other<br>
  </form>


  </body>

功能列表(c、n、z){
s=document.form.marktext.value;
如果(c.勾选){

如果(s.indexOf(n)propoEntry innerHtml不适用于收集文本框标签。另外,按照您的编码方式,这些不是标签


看看这个链接,我想你的解决方案在里面:

注意
newtext+=chkbx[i].value;
上的索引,而不是
newtext+=chkbx.innerHTML;

  <head>

  <script type="text/javascript">

  function list(c,n,z) {
   s=document.form.marktext.value;
  if (c.checked) {
  if (s.indexOf(n)<0) s+=', '+n;
  } else {
  s=document.form.marktext.value.replace(', '+n,'');
 }
  z=", ";
  if (s.substring(2) == z) s=s.substring(2);
  document.form.marktext.value=s;}



  function getchecked() {

      var newtxt = '';
      var chkbx = document.getElementsByTagName('input');

        for(var i = 0; i < chkbx.length; i ++) 
    {
      if(chkbx[i].type == 'checkbox' && chkbx[i].checked === true) {
      if(newtxt.length !== 0) {
        newtxt += ',';
        }
        newtxt += chkbx[i].value;
    }

    }

  document.form.marktext.value = newtxt;

  }

  </script>

  </head>


  <body>
  <form name="form">
  <input type="text" value="" name="marktext"><br>

  <input type="checkbox" name="mark" value="word" onclick="getchecked()">Word<br>
  <input type="checkbox" name="mark" onclick="getchecked()" value="type">Type<br>
  <input type="checkbox" name="mark" onclick="getchecked()" value="other">Other<br>

  </form>


  </body>

功能列表(c、n、z){
s=document.form.marktext.value;
如果(c.勾选){
如果(s.indexOf(n)更改此行

newtxt += chkbx.innerHTML;


没有innerHTML,但它有一个兄弟节点,即它旁边的文本节点。您可能希望显示此文本节点的“内容”。(注意:您的输出是“未定义”的,因为您在数组上而不是在
节点上调用了
innerHTML)

@t请记住将值放在复选框上,而不是innerHTML上
newtxt += chkbx[i].nextSibling.data;