天使と悪魔選手権

やりたいと思っているのは、
(1) "INPUT" の値を入力。
(2) "koteichi" は他からの参照値。
(3) "goukei"に(1)と(2)の合計値。
(4) "total" に(3)の値に該当する配列の値。
(実際には配列の値を代入した式の答え。)
という流れになります。
(3)まではなんとか分かるのですが、
(4)はどのように配列の値を代入すればいいのかが
分かりません。

 なにぶん最近始めた初心者なので不規則な値は配列を使えばいいと解釈したのですが、まったく使い方を間違えているのでしょうか?
こういった場合は別のやり方があるのでしょうか?
どなたかよろしくお願いします。
<SCRIPT language=JavaScript1.1>
<!--
rank = new Array(6);
rank[0]=0;
rank[1]=5;[rank2]=8;[rank3]=12;rank[4]=16;rank[5]=22;

function calc(){
document.myform.goukei.innerText = eval(document.myform.INPUT.value) +eval(document.myform.koteichi.value);

}

// -->
</SCRIPT>
</HEAD>
<BODY>
<form name="myform">
<INPUT size="20" type="text" name="INPUT" value="0" onchange="calc()"/>+<INPUT size="20" type="text" name="koteichi" value="10">=<INPUT size="20" type="text" name="goukei" value="0">
<INPUT size="20" type="text" name="total" value="0">
</FORM>
</BODY>

A 回答 (2件)

>(4) "total" に(3)の値に該当する配列の値。



が理解できません。
唐突に表記されているrankをどうにかしたいようなのですが、
具体的になにをしたいのでしょうか?

それといままでのスクリプトは多少問題がありそうなので
こんな風にしてみてください。

<SCRIPT language="JavaScript">
function calc(){
document.getElementById('myform').goukei.value = parseFloat(document.getElementById('myform').INPUT.value) + parseFloat(document.getElementById('myform').koteichi.value);
}
window.onload=calc;
</SCRIPT>
</HEAD>
<BODY>
<form id="myform">
<INPUT size="20" type="text" name="INPUT" value="0" onchange="calc()" />+<INPUT size="20" type="text" name="koteichi" value="10" readonly />=<INPUT size="20" type="text" name="goukei" value="" readonly />
<INPUT size="20" type="text" name="total" value="0">
</FORM>
</BODY>

この回答への補足

修正ありがとうございます。
勉強になりました。

例えば"goukei"で求めた値が5ならrank=[5]の値である22%を
"total"での計算に使いたいと思っています。
(計算式は上記ではややこしくなるので省いています。)
"goukei"の数字は分類で使用している値で、1ランク2ランク
3ランクと、それに対応して5.8.12%...と不規則に増えて
いきます。
その為ランク数の入力・加算をして、その指数である%を
求めるのにArrayを用いては?と思ったのですが...。
使い方まったく間違えているでしょうか??
何かこうした場合に適したやり方があれば、ご教授よろしくおねがいします。
なお、ランクの入力・確認が必須の状況です。

補足日時:2008/02/18 12:06
    • good
    • 0

提示された条件ですとこんな感じ?



<SCRIPT language="JavaScript">
function calc(){
var rank={1:"5%",2:"8%",3:"12%",4:"16%",5:"22%"};
var v=parseFloat(document.getElementById('myform').INPUT.value) + parseFloat(document.getElementById('myform').koteichi.value)
document.getElementById('myform').goukei.value = v;
document.getElementById('myform').total.value = rank[v]?rank[v]:0;
}
window.onload=calc;
</SCRIPT>
</HEAD>
<BODY>
<form id="myform">
<INPUT size="20" type="text" name="INPUT" value="0" onchange="calc()" />+<INPUT size="20" type="text" name="koteichi" value="10" readonly />=<INPUT size="20" type="text" name="goukei" value="" readonly />
<INPUT size="20" type="text" name="total" value="0">
</FORM>
</BODY>

この例だとINPUT欄に-9~-5までの数字をいれると、指定の%が表示されます。
それ以外は0です。
仕様がちがうようでしたら補足してください
    • good
    • 0
この回答へのお礼

まさにこれです。
これをしたかったんです!!
あぁ、"koteichi" value="10"は1の間違いでした^ ^;
タイプミスで悩ませてしまって申し訳ありませんでした;;
初心者の解り難い質問にわざわざお付き合いいただいて
本当にありがとうございました。

お礼日時:2008/02/18 17:56

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報