
<!--
function func() {
var a = eval(document.price.fa.checked);
var b = eval(document.price.fb.checked);
var c = eval(document.price.fc.checked);
var d = eval(document.price.fd.checked);
var e = eval(document.price.fe.checked);
var f = eval(document.price.ff.checked);
var g = eval(document.price.fg.checked);
var h = eval(document.price.fh.checked);
var i = eval(document.price.fi.value);
document.price.fprice.value = a + f +Math.round((b + c + d + e + 6500) * (50 + g));
}
// -->
すみません。
上の構文がどうしても上手くいきません。
計算結果が反映されません。
どこかおかしいのでしょうか。
不しつけながら宜しくお願いします。
No.5ベストアンサー
- 回答日時:
こんにちは
<script type="text/javascript">
<!--
function calculate() {
for (i=0; i<2; i++) if (document.price.elements[i].checked){ a = eval(document.price.elements[i].value);}
for (i=2; i<5; i++) if (document.price.elements[i].checked){ b = eval(document.price.elements[i].value);}
for (i=5; i<9; i++) if (document.price.elements[i].checked){ c = eval(document.price.elements[i].value);}
for (i=9; i<11; i++) if (document.price.elements[i].checked){ d = eval(document.price.elements[i].value);}
for (i=11; i<14; i++) if (document.price.elements[i].checked){ e = eval(document.price.elements[i].value);}
if (document.price.ff.checked) {f = eval(document.price.elements[14].value);}else{f=0;}
if (document.price.fg.checked) {g = eval(document.price.elements[15].value);}else{g=0;}
if (document.price.fh.checked) {h = eval(document.price.elements[16].value);}else{h=0;}
if(document.price.fi.value == ""){i=0; }else{i = eval(document.price.fi.value);}
document.price.fprice.value = a + f + g + h + Math.round((b + c + d + e + 6500)*(50+i));
}
function check()
{
txt = document.price.fi.value;
for (i=0; i<txt.length; i++) {
c = txt.charAt(i);
if ("0123456789".indexOf(c,0) < 0)
{alert("入力部に数値以外が含まれてます");
return;
}
}
}
//-->
</script>
<form name="price">
<input type="radio" name="fa" value="0" checked>0 <input type="radio" name="fa" value="1000">1000<br>
<input type="radio" name="fb" value="0" checked>0 <input type="radio" name="fb" value="1000">1000 <input type="radio" name="fb" value="2000">2000 <br>
<input type="radio" name="fc" value="0" checked>0 <input type="radio" name="fc" value="1000">1000 <input type="radio" name="fc" value="1500">1500 <input type="radio" name="fc" value="2000">2000 <br>
<input type="radio" name="fd" value="0" checked>0 <input type="radio" name="fd" value="1000">1000 <br>
<input type="radio" name="fe" value="0" checked>0 <input type="radio" name="fe" value="1000">1000 <input type="radio" name="fe" value="1500">1500<br>
<input type="checkbox" name="ff" value="10000">10000 <input type="checkbox" name="fg" value="20000">20000 <input type="checkbox" name="fh" value="30000">30000 <br>
<input type="text" name="fi" size="24" value=""><br>
<input type="button" value="=" onclick="check(),calculate()"><br>
<input type="text" name="fprice">
</form>
こんな感じになると思うのですが・・・
質問者様の計算式だと
最低が『325000』
(text未入力)最高『711000』
最高が『61000 + (13000 *(50 + (text入力値))』←計算が複雑なので数値があってるかは分からないです
となりますがこれでO.K.ですか?
これです!
無事目的の計算が出来るようになりました。
本当に有難うございました。
もっと簡単に出来るかと思っていて、こんなに長文になるとは
思いもよらず、1週間ぐらい悩んでいました。
奥が深いですね。所詮素人の付け焼き刃では上手くいかないものです。
精進して、いつかこんな風に誰かを助けられたらなと思います。
改めて有難うございました。
No.4
- 回答日時:
>早速動かしてみたのですが、ラジオボタン、チェックボックスともに
>機能してないようです。テキストフィールドは機能してます。
失礼しました。m(_ _)m
FireFox2で動作確認してエラーが無かったので油断してました。
修正します。WindwosXP IE6 Opera8 FireFox2 で動作確認しました。
function checkedValue(n){
var a = document.getElementsByName(n);
for(var i = 0; i < a.length; i++){
if(a[i].checked){
return a[i].value-0;
}
}
return 0;
}
修正&動作確認有難うございます。
こちらでも修正しましたが、まだチェックボックスがきちんと機能してないようです。
そして大変申し訳ないのですが、上の方の回答で決着がついてしまいました。ご協力大変有難うございました。
No.3
- 回答日時:
checkedプロパティの使い方を間違っているように思います。
ループでそれぞれのcheckedプロパティを調べる必要があるのでは?
関数を一つ作ってこんな感じでどうでしょう?
<script type="text/javascript">
<!--
function checkedValue(n){
var a = document.getElementsByName(n);
for(i in a){
if(a[i].checked){
return a[i].value - 0;
}
}
return 0;
}
function calculate() {
var a = checkedValue("fa");
var b = checkedValue("fb");
var c = checkedValue("fc");
var d = checkedValue("fd");
var e = checkedValue("fe");
var f = checkedValue("ff");
var g = checkedValue("fg");
var h = checkedValue("fh");
var i = document.price.fi.value - 0;
document.price.fprice.value = a + f +Math.round((b + c + d + e + 6500) * (50 + i));
}
// -->
</script>
ご回答有難うございます。
早速動かしてみたのですが、ラジオボタン、チェックボックスともに
機能してないようです。テキストフィールドは機能してます。
No.2
- 回答日時:
こんにちは。
さておたずねの件、JavaScript の部分だけ、下記のものにすっぽり入れ替えると、動作すると思います。あと、html の部分、表示が欠けてる(1500 ?)部分があるので、それは修正しておいてください。お願いします。
では(と、近所の居酒屋へ逃げる回答者であった[笑])。
-------------------------------------------
function calculate() {
for(i=0; i<document.price.fa.length; i++){
if(document.price.fa[i].checked){
a = parseInt(document.price.fa[i].value);
}
}
for(i=0; i<document.price.fb.length; i++){
if(document.price.fb[i].checked){
b = parseInt(document.price.fb[i].value);
}
}
for(i=0; i<document.price.fc.length; i++){
if(document.price.fc[i].checked){
c = parseInt(document.price.fc[i].value);
}
}
for(i=0; i<document.price.fd.length; i++){
if(document.price.fd[i].checked){
d = parseInt(document.price.fd[i].value);
}
}
for(i=0; i<document.price.fe.length; i++){
if(document.price.fe[i].checked){
e = parseInt(document.price.fe[i].value);
}
}
for(i=0; i<document.price.ff.length; i++){
if(document.price.ff[i].checked){
f = parseInt(document.price.ff[i].value);
}
}
if(document.price.ff.checked) { f = parseInt(document.price.ff.value); } else { f = 0; }
if(document.price.fg.checked) { g = parseInt(document.price.fg.value); } else { g = 0; }
if(document.price.fh.checked) { h = parseInt(document.price.fh.value); } else { h = 0; }
if(document.price.fi.value != "") { i = parseInt(document.price.fi.value); } else { i = 0; }
document.price.fprice.value = a + f + Math.round((b + c + d + e + 6500) * (50 + i));
}
ご回答有難うございます。
こちらを早速動かしてみたのですがチェックボックスがきちんと
機能してないようです。テキストフィールドは機能してます。
No.1
- 回答日時:
HTMLの部分も貼ったほうが答えやすいと思いますよ。
この回答への補足
ああっ!
すみません。以下がhtmlを含めたものになります。
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=Shift_JIS">
<meta name="generator" content="Adobe GoLive 6">
<title> </title><script type="text/javascript">
<!--
function func() {
var a = eval(document.price.fa.checked);
var b = eval(document.price.fb.checked);
var c = eval(document.price.fc.checked);
var d = eval(document.price.fd.checked);
var e = eval(document.price.fe.checked);
var f = eval(document.price.ff.checked);
var g = eval(document.price.fg.checked);
var h = eval(document.price.fh.checked);
var i = eval(document.price.fi.value);
document.price.fprice.value = a + f +Math.round((b + c + d + e + 6500) * (50 + i));
}
// -->
</script></head>
<body bgcolor="#ffffff">
<form name="price" action="#">
<input type="radio" name="fa" value="0" checked>0 <input type="radio" name="fa" value="0">0 <input type="radio" name="fa" value="1000">1000<br>
<input type="radio" name="fb" value="0" checked>0 <input type="radio" name="fb" value="1000">1000 <input type="radio" name="fb" value="2000">2000 <br>
<input type="radio" name="fc" value="0" checked>0 <input type="radio" name="fc" value="1000">1000 <input type="radio" name="fc" value="1500">1500 <input type="radio" name="fc" value="2000">2000 <br>
<input type="radio" name="fd" value="0" checked>0 <input type="radio" name="fd" value="1000">1000 <br>
<input type="radio" name="fe" value="0" checked>0 <input type="radio" name="fe" value="1000">1000 <input type="radio" name="fe" value="1500"><br>
<input type="checkbox" name="ff" value="10000">10000 <input type="checkbox" name="fg" value="20000">20000 <input type="checkbox" name="fh" value="30000">30000 <br>
<input type="text" name="fi" size="24"><br>
<input type="button" value="=" onclick="calculate()"><br>
<input type="text" name="fprice">
</form>
<p></p>
</body>
</html>
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- オープンソース Coinmarketcap api 1 2022/05/30 15:47
- JavaScript gasについて 1 2022/05/31 21:51
- HTML・CSS CSS のみのタブ切り替えについて 1 2023/01/11 16:47
- JavaScript 画像の表示位置 3 2022/12/23 08:25
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- JavaScript javascriptでテーブルに追加した項目のid追加してローカルストレージを操作したい 5 2023/01/01 15:52
- MySQL my_itemsテーブルのIDにAUTO_INCREMENT を追加ができるかで 1 2023/01/03 09:09
- MySQL 複数DBテーブルからのデータ取得 3 2022/05/17 15:02
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
フォームの数値計算
-
for文の中での計算
-
ボタンをクリックするとテキス...
-
HTMLのテキストボックスへのド...
-
ボタン押下しテキストエリアに...
-
ネスケではdocument.main.日本...
-
evalで数値に変換してる筈なの...
-
JavaScriptでこれ出来ますか?
-
for ( i = 0; i ・・の使い方?
-
jQueryで設定したイベントハン...
-
ボタンかリンクをクリックする...
-
ビルダーV.10で”Nullまたはオブ...
-
formのfileの値をhiddenでも持...
-
クリックさせたいが、click()が...
-
どうしても上手くいきません。
-
javascriptでtextareaに文字列...
-
onClick関数でのテキスト、数値...
-
fileUploadオブジェクトへの値...
-
新しくフォルダを作成したい
-
テキストだけonCllickを検知したい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
onchangeイベントを強制的に発...
-
JavaScriptのfileオブジェクト...
-
クリックさせたいが、click()が...
-
VB.NETで<Input>タグ、<text...
-
formのfileの値をhiddenでも持...
-
onclickが動作しない
-
クリックでテーブル内の背景色...
-
ボタンかリンクをクリックする...
-
javascriptでtextareaに文字列...
-
javaScriptの変数をJavaの変数...
-
URL 判定
-
任意の<DIV></DIV>の中に計算結...
-
開いた子ウィンドウにあるボタ...
-
innerHTML内では改行は禁止?
-
onClickがinput type="image"だ...
-
JSのボタンを複数う使うには
-
jQueryで設定したイベントハン...
-
オンクリックで現在時刻の取得→...
-
オークションサイト一括検索サ...
-
インラインフレームから親ウィ...
おすすめ情報