※ ChatGPTを利用し、要約された質問です(原文:index が0の1行目が計算されない)
複数行の計算を可能にする方法
このQ&Aのポイント
初心者の方が作成したHTMLの表で、Javascriptで複数行の計算を可能にする方法について質問があります。
質問者は自分なりに色々試しましたがうまくいかず、解決策を教えてほしいとしています。
具体的なコードの変更案やアドバイスを求めています。
お世話になります。
基本的な事もわかっていない超初心者です。
どうか、ご教授下さい。
以下のhtml表はphpで<?php
$index = 0;
while ( ループ条件 {
?>
<input type="button" value="計算" onclick="keisan(<?= $index ?>)" />
<? php$index++;} ?>
でできた表ですが、
以下のjavascript でkeisan ( index )が下記のように表が1行しかない場合
javascriptエラーで計算できません。
<script type="text/javascript">
function keisan ( index ) {
var formObj = document.tasizan;
var aa = parseInt ( formObj.aa[index].value );
var bb = parseInt ( formObj.bb[index].value );
formObj.kaito[index].value = aa + bb;}
</script>
<form name="tasizan">
<table>
<tr><th>A</th><th>B</th><th>回答</th></tr><tr>
<td><input type="text" name="aa" size="5" /></td>
<td><input type="text" name="bb" size="5" /></td>
<td><input type="text" name="kaito" size="10" />
<input type="button" value="計算" onclick="keisan(0)" /></td>
</tr></table></form>
そこで自分なりに
function keisan ( index ) {
if(index==0){var formObj = document.tasizan;
var aa = parseInt ( formObj.aa.value );
var bb = parseInt ( formObj.bb.value );
formObj.kaito.value = aa + bb;}
if(index>1){
var formObj = document.tasizan;
var aa = parseInt ( formObj.aa[index].value );
var bb = parseInt ( formObj.bb[index].value );
formObj.kaito[index].value = aa + bb;
};}
等、色々考えてみましたがこれでは複数行ある時の1行目が計算されません。
どうしたら複数行ある時にも1行目を計算できるようになるのでしょうか?
具体的に教えて頂けると大変助かります。
どうかご教授の程よろしくお願い致します。
お礼
ご回答ありがとうございます。 頂いた式を 私の式に当てはめて考えています。 ただお恥ずかしいのですが 私の知識が乏しく、お恥ずかしいのですが、 私がやろうと思っている 式に当てはめて考えるのはもう少し時間が かかりそうです。 理解できて式にするまでには時間がかかりそうですので お礼が遅くなってしまい申し訳ないので、 この質問は一旦これで締めきりさせていただきたいと 思います。 ご教授ありがとうございます。 心より感謝申し上げます。 また何かありましあら是非よろしくお願い致します。
補足
ご回答ありがとうございます。 何回も回答頂いてサンプル画面も作って頂いて深く感謝いたします。 本当に超初心者なので 「複数の <form> を作成すればいいんじゃなイカ」 という意味が分かりませんでしたが、サンプル画面を見せて頂き、 ようやくわかりました。こういう方法もあるのですね。 これだとインデックスも必要ないと言う事ですね。 attachEventの件もご丁寧に教えて頂いてありがとうございました。 この方法でやってみようと思います。 ご教授ありがとうございました。