|
一覧情報の数値データを縦計算したい
|
2005/11/23
|
@author y.sato
|
|
一覧情報の集計・・・、例えば・・・まー、下の表みたいなヤツですわ。こないだ、職場の同僚が四苦八苦してたので、作ってあげたプログラムです。
簡単じゃんと言われそうですが、僕とかIT業界経験5ヶ月のK君にとっては難しいです。特に一覧の行数が動的に変化する場合はよくわかんなくなります。
とりあえず、下の何個かのテキストボックスに数字を入れてみて下さい。
(というと、アルファベット、かななどを入力したくなる人は、性格が悪いか、テスターか、性格の悪いテスターか・・・まーその辺のどれかですね)
下のように書くと、同じ名前のテキストボックスの個数が、前もって確定できない場合にも対応できますね。
今回は、テキストボックスからカーソルが外れたときに計算させるため「OnBlur」を使っています。
もう1つ隣に数量のテキストボックスなどを追加しても同じ要領で掛け算とか出来ますね。
<script type="text/javascript">
<!--
function calc() {
var line;
var tmp;
var gokei = 0;
for(line=0;line<window.document.forms[0].tanka.length;line++){
tmp = window.document.forms[0].tanka[line].value;
if (tmp!="" && !isNaN(tmp)) {
gokei = gokei + parseInt(tmp);
}
else if (tmp!="" && isNaN(tmp)) {
alert("不謹慎です!");
}
}
window.document.forms[0].gokei.value = gokei;
}
-->
</script>
<form name="testForm">
<table border="1" cellspacing="0">
<tr bgcolor="#99FFCC">
<td>No</td><td>商品名</td><td>単価</td>
</tr>
<tr>
<td>1</td><td>商品A</td><td><input type="text" name="tanka" OnBlur="calc()"></td>
</tr>
<tr>
<td>2</td><td>商品B</td><td><input type="text" name="tanka" OnBlur="calc()"></td>
</tr>
<tr>
<td>3</td><td>商品C</td><td><input type="text" name="tanka" OnBlur="calc()"></td>
</tr>
<tr>
<td>4</td><td>商品D</td><td><input type="text" name="tanka" OnBlur="calc()"></td>
</tr>
<tr>
<td>5</td><td>商品E</td><td><input type="text" name="tanka" OnBlur="calc()"></td>
</tr>
<tr>
<td colspan="2">合計</td><td><input type="text" name="gokei"></td>
</tr>
</table>
</form>
|