0

ユーザーが各行のスロットセルに入力した値を追加しようとしています。合計を取得して、SlotsTotalsフィールドに配置したいと思います。しかし、コードはまったく機能していません。

function checkRow(){
    var table = document.getElementById('tblSample');

    for (var i = 0, row; row = table.rows[i]; i++){
            document.getElementById('SlotsTotals').value += document.getElementById('txtSlots' + i).value;
    }
 }

テーブルに行を動的に追加しています。ユーザーはスロットフィールドに値を入力します。テーブルをループしてすべての値の合計を取得し、SlotsTotalフィールドに合計を追加したいと思います。

これが、行を追加するためのHTMLの一部です。

function addRow() {
    //function ValidateRow(){alert('error');}
    //function insertRow();

    var tbl = document.getElementById('tblSample');
    var lastRow = tbl.rows.length;  
    // if there's no header row in the table, then iteration = lastRow + 1
    //var iteration = lastRow;
    var iteration = lastRow;
    var row = tbl.insertRow(lastRow);

    var cell5 = row.insertCell(6);            
    var element5 = document.createElement('input');            
    element5.type = 'text';            
    element5.name = 'txtSlots' + iteration; 
    element5.id = 'txtSlots' + iteration;   
    element5.size = 10;
    cell5.appendChild(element5);
  }
4

1 に答える 1

0

HTMLコードの一部を投稿していただけませんか

多分試してみてください

document.getElementById('SlotsTotals').innerHTML

http://www.w3schools.com/jsref/met_doc_getelementbyid.asp

__

多分これは助けることができます:)

<table id='tblSample' style='border: 1pt, solid, black;'>
  <tr>
    <td>
      ...A1
    </td>
    <td>
      ...A2
    </td>
    <td>
      ...A3
    </td>
    <td>
      ...A4
    </td>
    <td>
      ...A5
    </td>
    <td>
      <input type='text' id='txtSlots1'>
    </td>
  </tr>
  <tr>
    <td>
      ...B1
    </td>
    <td>
      ...B2
    </td>
    <td>
      ...B3
    </td>
    <td>
      ...B4
    </td>
    <td>
      ...B5
    </td>
    <td>
      <input type='text' id='txtSlots2'>
    </td>
  </tr>
  <tr>
    <td>
      ...C1
    </td>
    <td>
      ...C2
    </td>
    <td>
      ...C3
    </td>
    <td>
      ...C4
    </td>
    <td>
      ...C5
    </td>
    <td>
      <input type='text' id='txtSlots3'>
    </td>
  </tr>
  <tr>
    <td>
      ...D1
    </td>
    <td>
      ...D2
    </td>
    <td>
      ...D3
    </td>
    <td>
      ...D4
    </td>
    <td>
      ...D5
    </td>
    <td>
      <input type='text' id='txtSlots4'>
    </td>
  </tr>
 <tr>
    <td>
      ...E1
    </td>
    <td>
      ...E2
    </td>
    <td>
      ...E3
    </td>
    <td>
      ...E4
    </td>
    <td>
      ...E5
    </td>
    <td>
      <input type='text' id='txtSlots5'>
    </td>
  </tr>
</table>
<input type='button' onclick="test();" value="test">
<input type='text' id='SlotsTotals'>

<script>
  function test(){
    var table = document.getElementById('tblSample');
    res = document.getElementsByTagName('input');
    sum = 0
    for (var i = 0; i < res.length; i++){
      s = res[i].id
      if((String(s).indexOf("txtSlots") > -1)&&(res[i].type == 'text'))
      {
        sum += parseInt(res[i].value)
      }
    }
    document.getElementById('SlotsTotals').value = sum
  }
</script>
于 2013-03-06T18:03:39.967 に答える