以下のようなコードがあります
<script type="text/javascript">
<!--
function keisan1(FRM){
// ################ 販売価格欄計算 ###############
//コンマを外す
txt = 5; // テキストボックスの数
for(i=0; i<txt; i++) {
if(FRM.elements[i].value != "") {
FRM.elements[i].value = FRM.elements[i].value.replace( /,/g, '');}
}
//数字かどうかチェック
for(i=0; i<txt; i++) {
if (FRM.elements[i].value.match(/[\D]/g)){
window.alert("今入力した文字が不正です。半角数字で入力してください。");
return(false); // 計算中止
}
}
//本体価格欄の計算する
txt = 4; // 計算するテキストボックスの数
ttl = FRM.hk5.value*0;
for(i=0; i<txt; i++) {
if(FRM.elements[i].value != "") {
ttl += eval(FRM.elements[i].value);}
}
FRM.hk5.value = ttl-(FRM.hk2.value*2);
//コンマ処理
txt = 5; // コンマをつけるテキストボックスの数
for(i=0; i<txt; i++) {
if(FRM.elements[i].value != "") {
FRM.elements[i].value = FRM.elements[i].value.replace( /,/g, '').replace( /((?:^[-+])?\d{1,3})(?=(?:\d\d\d)+(?!\d))/g, '$1,');}
}
}//############## 販売価格計算ここまで ###############
こういった感じのものが 4つあります
で それぞれの合計額を 最後にたして総合計したいのですが
まず それぞれの呼び出しが別々のフォームになっていまして
HTMLは
<form name="rei1">
onclick="keisan1(this.form)"
</form>
と言う感じで keisan1から4まで作りました
また、HTMLもフォーム名 rei1からrei4まであります
総合計計算をするときに
onclick="sougoukei()"
として念のため各項目の合計計算(小計を出す感じです)し直してから
各項目をたして総合計にしたいのですが
function sougoukei(){
keisan1();
keisan2();
keisan3();
keisan4();
ここから各小計をたして総合計を出す
}
としたいのですが うまくいきません
( )の中に何か書かないといけないようなんですが
this.form でも合計が出ない
FRMとうっても
FRM.elements[...]はnullかオブジェクトではないと言う感じのエラー
が出ます
それぞれの小計計算はうまく動いています。
何をどうしたらうまくいくのかよく分かりません
どなたかご教授お願いします
よろしくお願いします
No.7
- 回答日時:
どうかしてる!<俺
合計が正しく表示されなかった。;_;
<html>
<body>
<div id="a">
<form id="frm1">
1.<input type="text" class="chknum keta3 pr"><br>
2.<input type="text" class="chknum keta3 pr"><br>
3.<input type="text" class="chknum keta3 pr"><br>
4.<input type="text" class="chknum keta3 pr"><br>
G.<input type="text" class="chknum keta3 shoukei">
<input type="button" value="計算" onclick="shoukei(this.form)">
</form>
<form id="frm2">
1.<input type="text" class="chknum keta3 pr"><br>
2.<input type="text" class="chknum keta3 pr"><br>
3.<input type="text" class="chknum keta3 pr"><br>
4.<input type="text" class="chknum keta3 pr"><br>
G.<input type="text" class="chknum keta3 shoukei">
<input type="button" value="計算" onclick="shoukei(this.form)">
</form>
</div>
<form>
<input type="text" id="go">
<input type="button" value="計算" onClick="goukei()">
</form>
<script>
var total=0;
function shoukei(f){
var o=f.elements, m=o.length, k=0;
for(var i=0;i<m;i++){
if(o[i].className.match(/chknum/)) if(o[i].value.match(/[^,\d,]/)) {alert('不正');return; }
if(o[i].className.match(/pr/)) k+=(o[i].value.replace(/,/g,'')-0);
if(o[i].className.match(/keta3/)) o[i].value=co3(o[i].value);
if(o[i].className.match(/shoukei/)) { o[i].value=co3(k); total+=(k-0);}
}
}
function goukei(){
total=0;
var fm=document.getElementById('a').getElementsByTagName('form'),m=fm.length;
for(i=0;i<m;i++) shoukei(fm[i]);
document.getElementById('go').value=co3(total);
}
function co3(s){var n=new String(s).replace(/,/g,'');while(n!=(n=n.replace(/^(-?\d+)(\d{3})/,'$1,$2')));return n;}
</script>
</body></html>
No.3
- 回答日時:
<html>
<body>
<div id="a">
<form id"=frm1">
1.<input type="text" class="chknum keta3 pr"><br>
2.<input type="text" class="chknum keta3 pr"><br>
3.<input type="text" class="chknum keta3 pr"><br>
4.<input type="text" class="chknum keta3 pr"><br>
G.<input type="text" class="chknum keta3 shoukei">
<input type="button" value="計算" onclick="shoukei(this.form)">
</form>
<form id"=frm1">
1.<input type="text" class="chknum keta3 pr"><br>
2.<input type="text" class="chknum keta3 pr"><br>
3.<input type="text" class="chknum keta3 pr"><br>
4.<input type="text" class="chknum keta3 pr"><br>
G.<input type="text" class="chknum keta3 shoukei">
<input type="button" value="計算" onclick="shoukei(this.form)">
</form>
</div>
<form>
<input type="text" id="go">
<input type="button" value="計算" onClick="goukei()">
</form>
<script>
var total=0;
function shoukei(f){
var o=f.elements, m=o.length, k=0;
for(var i=0;i<m;i++){
if(o[i].className.match(/chknum/)) if(o[i].value.match(/[^,\d,]/)) {alert('不正');return; }
if(o[i].className.match(/pr/)) k+=(o[i].value.replace(/,/g,'')-0);
if(o[i].className.match(/keta3/)) o[i].value=co3(o[i].value);
if(o[i].className.match(/shoukei/)) o[i].value=co3(k); total+=k;
}
}
function goukei(){
total=0;
var fm=document.getElementById('a').getElementsByTagName('form'),m=fm.length;
for(i=0;i<m;i++) shoukei(fm[i]);
document.getElementById('go').value=co3(total);
}
function co3(s){var n=new String(s).replace(/,/g,'');while(n!=(n=n.replace(/^(-?\d+)(\d{3})/,'$1,$2')));return n;}
</script>
</body></html>
No.2
- 回答日時:
vat total;
function sougoukei(){
total=0;
各処理..
}
でも短いプログラムが好きな俺としては、長いかな~
小計の計算サブルーチンは、工夫すると1つでまかなえると思ふ。
name は使わず id を!
No.1ベストアンサー
- 回答日時:
vat total=0;
function sougoukei(){
keisan1(document.getElementById('frm1'));
keisan2(document.getElementById('frm2'));
keisan3(document.getElementById('frm3'));
keisan4(document.getElementById('frm4'));
ここから各小計をたして総合計を出す
}
各フォームには
<form id="frm1">としてidをふる
各 keisan?()の関数の中で小計が計算できたら
total+=小計額;
で加算する
ということで total に合計が代入!
できました!
何度も回答ありがとうございます
全部きちんと動いたときには 感動しました
ありがとうございます
またご縁がありましたら これに懲りずよろしくお願いします
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- Visual Basic(VBA) 検索のユーザーフォームの表示について 1 2023/03/27 23:31
- JavaScript javascriptのちょっとした動作不良(原因は突き止めたのですが) 1 2023/06/15 19:58
- Access(アクセス) docmd.gotorecordを起動するには 5 2022/06/17 15:20
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- JavaScript セレクトを全て選択されていないと、文字によるエラーメッセージを表示させるコードを調べています 2 2023/06/22 15:48
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- Excel(エクセル) エクセル 関数について質問です。 2 2022/10/03 11:14
- JavaScript HTMLでJavaScriptを使ってパスワードの強化判定のプログラムを作成しています。 一通り作っ 2 2022/10/19 01:41
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
3桁区切りのカンマをつけたい...
-
hiddenのvalueの値を変えたい
-
子から親へチェックボックスの...
-
フォームに入力された数値を計...
-
C言語クイックソートの比較総回...
-
VB.NET DateTimeの型について
-
ラジオボタンと連動して文字列...
-
テキストエリア内容からチェッ...
-
インラインフレーム内に決めら...
-
フォームで入力した値を別のフ...
-
電卓のJavaScript
-
テキストボックスに入力された...
-
value内に変数を入れたい
-
setIntervalの間隔を途中で変更...
-
大量のselect要素のvalueを短い...
-
複数のsubmitボタンで押された...
-
JavaScriptでBMI計算
-
javascriptでhiddenに二次元配...
-
セレクトボックスの初期選択状...
-
return trueとreturn falseの用...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
hiddenのvalueの値を変えたい
-
value内に変数を入れたい
-
複数のsubmitボタンで押された...
-
3桁区切りのカンマをつけたい...
-
VB.NET DateTimeの型について
-
javascriptでhiddenに二次元配...
-
テキストボックスに入力された...
-
eval()を使わずに数値を取得し...
-
引数に数値、文字列の混在
-
クイズ作成:15個の問題から5個...
-
sessionStorageを調べています。
-
setIntervalの間隔を途中で変更...
-
javascriptにてHTMLのhiddenエ...
-
name属性が同じフォームが複数...
-
セレクトボックスの初期選択状...
-
Pythonで会員サイトの自動ログ...
-
演算対象の数字と演算子を入力...
-
商品コードを入れたら自動で商...
-
フォームで入力した値を別のフ...
-
ラジオボタンの選択で解答・点...
おすすめ情報