私は今、以下のようにここで教えていただいたプログラムを参考に組んでは見たものの、同じ行をいくつもコピペすると計算されなくなってしまいます。1行だけの計算でしようとするとうまく計算されるのですが・・・
<HTML>
<HEAD>
<TITLE>
タイトルバーに表示されるテキスト
</TITLE>
<SCRIPT LANGUAGE="JavaScript">
<!--JavaScript
function SUM(){
if(!isNaN(document.sum.text1.value) && !isNaN(document.sum.text2.value) && !isNaN(document.sum.text3.value) && document.sum.text1.value && document.sum.text2.value && document.sum.text3.value){
document.sum.text4.value = eval(document.sum.text1.value) + eval(document.sum.text2.value) - eval(document.sum.text3.value)
}
if( !isNaN(document.sum.text5.value) && !isNaN(document.sum.text6.value) && document.sum.text5.value && document.sum.text6.value){
document.sum.text7.value = eval(document.sum.text4.value) + eval(document.sum.text5.value) + eval(document.sum.tex6.value)
}
}
//-->
</SCRIPT>
</HEAD>
<BODY>
<FORM NAME="sum" onSubmit="SUM();return false;">
A<INPUT TYPE="text" NAME="text1" onChange="SUM()" SIZE="10"><BR>
B<INPUT TYPE="text" NAME="text2" onChange="SUM()" SIZE="10"><BR>
C<INPUT TYPE="text" NAME="text3" onChange="SUM()" SIZE="10"><BR>
D=A+B-C<INPUT TYPE="text" NAME="text4" onChange="SUM()" SIZE="10"><BR>
E<INPUT TYPE="text" NAME="text5" onChange="SUM()" SIZE="10"><BR>
F<INPUT TYPE="text" NAME="text6" onChange="SUM()" SIZE="10"><BR>
G=D+E+F<INPUT TYPE="text" NAME="text7" onChange="SUM()" SIZE="10"><BR>
</FORM>
</BODY>
</HTML>
No.2
- 回答日時:
>HTMLで、一行だけだときちんと処理してくれるのですが、コピペで、複数行に増やすと処理してくれないんです・・・
すみません。現象が分かりません。
上のソースをhtmlにしてやってみると、ちゃんと計算されますが?
複数行に増やすというのは、どのようにしているのですか?
この回答への補足
え~~とですね。
今は、WEB画面から、例えば、住所録みたいなのを作って、それに何人か分をまとめてDBに落とすというものを作っているんです。
そこで、一人ぶんのデータを入力したらその都度保存していくのではなく、何人かぶんをまとめてDBに落とすため、同じフィールドをまとめて何行か表示させて一気に入力しようというものです。
Excelのシートで、表を想像していただくと分かりやすいと思います。
複数行に増やすときは、HTMLのタグをそのままコピーして貼り付けて、一つのテーブルに格納しています。
No.3
- 回答日時:
yu-kichanさんの言うとおり、上記のソースでは「tex6」の記述ミス以外に問題はなさそうです。
「コピペで複数行に増やすして問題の出たソース」というのを見せていただけませんか?
ちなみに、
>HTMLのタグをそのままコピーして貼り付けて
というのは、
inputタグの「NAME="text5"」などの記述もそのまま使っているということでしょうか??
もしそうだとしたら動きません・・・(^^;
NAME属性は、すべて別の名前に設定しなくてはなりません。そして、追加した分のソースをスクリプト側にも追加する必要があります。
検討違いなことを言っていたらごめんなさい。(^^;
とにかく問題のソースがわからないので・・・
HTMLの部分は、こういう感じでコピペしています。
<HTML>
<HEAD>
<TITLE>test</TITLE>
</HEAD>
<TABLE>
<FORM NAME="sum" onSubmit="SUM();return false;">
<TR>
<TD>A<INPUT TYPE="text" NAME="text1" onChange="SUM()" SIZE="10"><BR></TD>
<TD>B<INPUT TYPE="text" NAME="text2" onChange="SUM()" SIZE="10"><BR></TD>
<TD>C<INPUT TYPE="text" NAME="text3" onChange="SUM()" SIZE="10"><BR></TD>
<TD>D=A+B-C<INPUT TYPE="text" NAME="text4" onChange="SUM()" SIZE="10"><BR></TD>
<TD>E<INPUT TYPE="text" NAME="text5" onChange="SUM()" SIZE="10"><BR></TD>
<TD>F<INPUT TYPE="text" NAME="text6" onChange="SUM()" SIZE="10"><BR></TD>
<TD>G=D+E+F<INPUT TYPE="text" NAME="text7" onChange="SUM()" SIZE="10"><BR></TD>
</TR>
<TR>
<TD>A<INPUT TYPE="text" NAME="text1" onChange="SUM()" SIZE="10"><BR></TD>
<TD>B<INPUT TYPE="text" NAME="text2" onChange="SUM()" SIZE="10"><BR></TD>
<TD>C<INPUT TYPE="text" NAME="text3" onChange="SUM()" SIZE="10"><BR></TD>
<TD>D=A+B-C<INPUT TYPE="text" NAME="text4" onChange="SUM()" SIZE="10"><BR></TD>
<TD>E<INPUT TYPE="text" NAME="text5" onChange="SUM()" SIZE="10"><BR></TD>
<TD>F<INPUT TYPE="text" NAME="text6" onChange="SUM()" SIZE="10"><BR></TD>
<TD>G=D+E+F<INPUT TYPE="text" NAME="text7" onChange="SUM()" SIZE="10"><BR></TD>
</TR>
・
・
・
</FORM>
</BODY>
</HTML>
ということは、それぞれに、Functionを作っていかなければならないのでしょうか?すっきり簡単にする方法がありましたら、ぜひお願いいたします。
No.4
- 回答日時:
ソースありがとうございます。
えと、やはりinputタグをそのままコピペして使ってらっしゃったのですね(^^;
name属性は同じ名前を付けることが出来ないので、エラーを起こしてしまいます。
簡略化したソースを考えて教えて差し上げたいのですが、ちょっと今仕事がたてこんでまして・・・
めちゃ基本仕様のソースでよいでしょうか(^^;
フォーム名を変え、その分のfunctionの追加にて、作成してます。
<HTML>
<HEAD>
<TITLE>
タイトルバーに表示されるテキスト
</TITLE>
<SCRIPT LANGUAGE="JavaScript">
<!--JavaScript
function SUM(){
if(!isNaN(document.sum.text1.value) && !isNaN(document.sum.text2.value) && !isNaN(document.sum.text3.value) && document.sum.text1.value && document.sum.text2.value && document.sum.text3.value){
document.sum.text4.value = eval(document.sum.text1.value) + eval(document.sum.text2.value) - eval(document.sum.text3.value)
}
if( !isNaN(document.sum.text5.value) && !isNaN(document.sum.text6.value) && document.sum.text5.value && document.sum.text6.value){
document.sum.text7.value = eval(document.sum.text4.value) + eval(document.sum.text5.value) + eval(document.sum.text6.value)
}
}
function SUM2(){ //このnunctionを追加してます
if(!isNaN(document.sum2.text1.value) && !isNaN(document.sum2.text2.value) && !isNaN(document.sum2.text3.value) && document.sum2.text1.value && document.sum2.text2.value && document.sum2.text3.value){
document.sum2.text4.value = eval(document.sum2.text1.value) + eval(document.sum2.text2.value) - eval(document.sum2.text3.value)
}
if( !isNaN(document.sum2.text5.value) && !isNaN(document.sum2.text6.value) && document.sum2.text5.value && document.sum2.text6.value){
document.sum2.text7.value = eval(document.sum2.text4.value) + eval(document.sum2.text5.value) + eval(document.sum2.text6.value)
}
}
//-->
</SCRIPT>
</HEAD>
<BODY>
<TABLE>
<FORM NAME="sum">
<TR>
<TD>A<INPUT TYPE="text" NAME="text1" onChange="SUM()" SIZE="10"><BR></TD>
<TD>B<INPUT TYPE="text" NAME="text2" onChange="SUM()" SIZE="10"><BR></TD>
<TD>C<INPUT TYPE="text" NAME="text3" onChange="SUM()" SIZE="10"><BR></TD>
<TD>D=A+B-C<INPUT TYPE="text" NAME="text4" onChange="SUM()" SIZE="10"><BR></TD>
<TD>E<INPUT TYPE="text" NAME="text5" onChange="SUM()" SIZE="10"><BR></TD>
<TD>F<INPUT TYPE="text" NAME="text6" onChange="SUM()" SIZE="10"><BR></TD>
<TD>G=D+E+F<INPUT TYPE="text" NAME="text7" onChange="SUM()" SIZE="10"><BR></TD>
</TR>
</FORM> <!--一度フォームを閉じてます-->
<FORM NAME="sum2"> <!--違うフォームとして作成してます-->
<TR>
<TD>A<INPUT TYPE="text" NAME="text1" onChange="SUM2()" SIZE="10"><BR></TD>
<TD>B<INPUT TYPE="text" NAME="text2" onChange="SUM2()" SIZE="10"><BR></TD>
<TD>C<INPUT TYPE="text" NAME="text3" onChange="SUM2()" SIZE="10"><BR></TD>
<TD>D=A+B-C<INPUT TYPE="text" NAME="text4" onChange="SUM2()" SIZE="10"><BR></TD>
<TD>E<INPUT TYPE="text" NAME="text5" onChange="SUM2()" SIZE="10"><BR></TD>
<TD>F<INPUT TYPE="text" NAME="text6" onChange="SUM2()" SIZE="10"><BR></TD>
<TD>G=D+E+F<INPUT TYPE="text" NAME="text7" onChange="SUM2()" SIZE="10"><BR></TD>
</TR>
</FORM>
</table>
</BODY>
</HTML>
お忙しいところ、ありがとうございます。
NIGHT2000さんの指摘されたように、変数をいくつも作ってしてみましたがこちらの担当者によると、レコードが多いときには50件の登録があるということで、そんな・・・って感じで簡略化できないか考えております。
いろいろと、お力になっていただきありがとうございます。
もし、時間にゆとりができたと時は、よろしくお願いいたします。
もう少し、上のソースを参考に考えさせていただきます。
No.5ベストアンサー
- 回答日時:
たまコです。
NIGHT2000さんの方法でFORMを沢山生成しても構わないのなら、
こんな感じにもできますね。
#インデントのため、全角スペース入れてます。ご注意。
<html>
<head>
<title>タイトルバーに表示されるテキスト</title>
<script language="JavaScript">
<!--
function TotalSum(i)
{
var evalStr = eval("document.sum" + i);
with(evalStr)
{
if(!isNaN(text1.value) && !isNaN(text2.value) && !isNaN(text3.value) &&
text1.value && text2.value && text3.value)
{
text4.value = eval(text1.value) + eval(text2.value) - eval(text3.value);
}
if( !isNaN(text5.value) && !isNaN(text6.value) &&
text5.value && text6.value)
{
text7.value = eval(text4.value) + eval(text5.value) + eval(text6.value);
}
}
}
//-->
</script>
</head>
<body bgcolor="#ffffff">
<script language="JavaScript">
<!--
var i;
for(i = 1; i < 5; i++)
{
document.write('<form name="sum' + i + '" onSubmit="TotalSum(' + i + ');return false;">\n');
document.write('A<input type="text" name="text1" onChange="TotalSum(' + i + ')" size="10"><br>\n');
document.write('B<input type="text" name="text2" onChange="TotalSum(' + i + ')" size="10"><br>\n');
document.write('C<input type="text" name="text3" onChange="TotalSum(' + i + ')" size="10"><br>\n');
document.write('D=A+B-C<input type="text" name="text4" onChange="TotalSum(' + i + ')" size="10"><br>\n');
document.write('E<input type="text" name="text5" onChange="TotalSum(' + i + ')" size="10"><br>\n');
document.write('F<input type="text" name="text6" onChange="TotalSum(' + i + ')" size="10"><br>\n');
document.write('G=D+E+F<input type="text" name="text7" onChange="TotalSum(' + i + ')" size="10"><br>\n');
document.write('</form>\n');
}
//-->
</script>
</body>
</html>
やりすぎ?(A^-^;)
でもこれならfor文の中の「i = 1; i < 5;」の部分を変更するだけで
いくらでも増やせますよ(笑
まぁ、邪道ですがこんな方法もあるという事で。。。
参考になれば幸いです。
ご回答ありがとうございます。
なんせ、登録は50件あるときもあるそうなので大変参考になります。
ほんとにありがとうございます。
自分では、変数をたくさんつけて力技になってしまい、とてもじゃないですが他の人にはこんな自分のソースを見せれないと感じています。
ですが、みなさんのおかげで何とかなるかも・・・って感じです。
自分でも考えてみますが、なにかひらめきがございましたらまたお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
階層別の組織図の自動作成について
-
食材の期限を管理するためにGAS...
-
前回の質問の続き function mov...
-
このプログラムに、王手をかけ...
-
前回の質問の続き function mou...
-
このプログラムに王様の逃げ道...
-
ビデオのJSについて
-
鍵盤アプリで、スマホの画面に...
-
<div>のタッチ状態を維持したま...
-
jQueryでシンセサイザーを作っ...
-
プログラミング 学習
-
HTMLでサブフレームから親のス...
-
ジャバスクリプトについて。
-
プログラムについて。
-
Q&A掲示板の入力フォームに文字...
-
メールフォームの日付入力フォ...
-
二次元配列を使って順位をだす...
-
iOSのみダブルタップが必要
-
jsで質問です。 displayプロパ...
-
var exports = exports || {}; ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
食材の期限を管理するためにGAS...
-
ビデオのJSについて
-
前回の質問の続き function mov...
-
このプログラムに、王手をかけ...
-
このプログラムに王様の逃げ道...
-
初心者です。gulpでコンパイル...
-
前回の質問の続き function mou...
-
鍵盤アプリで、スマホの画面に...
-
スマホ上で、左右スワイプで次...
-
jQueryで同じクラス名のものを...
-
読み込んだQRコードをフォーム...
-
追加ボタンを押した際に ok ボ...
-
Colorboxがうまく設置できません
-
階層別の組織図の自動作成について
-
二次元配列を使って順位をだす...
-
【GAS】WEBアプリでハイパーリ...
-
HTMLで作った時報アプリが動き...
-
セレクトを全て選択されていな...
-
画面遷移を行わずに同一ページ...
-
jsで質問です。 ボタンが二つ存...
おすすめ情報