下記の記述で表示されないのですが、どこに原因があるかわかりませんでしょうか?(さらによい表現方法でもあれば教えていただけると助かります。)


<script type="text/javascript">
function sum_chk_value(gname){
var r= document.getElementsByName(gname);
var i;
var sum=0;
for (i=0; i<r.length; i++) {
if (r[i].checked == true) {
sum+=parseInt(r[i].value,14);
}
}
return (sum);
}

function my_click(){
var a_sum=sum_chk_value("A");
var b_sum=sum_chk_value("B");
var c_sum=sum_chk_value("C");

switch(sum){
case a_sum==b_sum && a_sum==c_sum:alert("同数!"); break;
case a_sum==b_sum && a_sum<c_sum:alert("CC!"); break;
case a_sum>b_sum && b_sum>c_sum:alert("AA!"); break;
case b_sum>a_sum && a_sum>c_sum:alert("BB!"); break;
case a_sum==b_sum && a_sum>c_sum:alert("AB!"); break;
}
}
</script>

<INPUT type="checkbox" name="A" value="2">国語1<BR>
<INPUT type="checkbox" name="A" value="2">国語2<BR>
<INPUT type="checkbox" name="A" value="2">国語3<BR>
<INPUT type="checkbox" name="B" value="2">数学1<BR>
<INPUT type="checkbox" name="B" value="2">数学2<BR>
<INPUT type="checkbox" name="C" value="2">英語1<BR>
<INPUT type="checkbox" name="C" value="2">英語2<BR>
<BR>
<input type="button" onclick="my_click()" value="計算">

回答の条件
  • 1人1回まで
  • 登録:
  • 終了:2015/08/02 15:27:04
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:a-kuma3 No.1

回答回数4974ベストアンサー獲得回数2154

ポイント100pt

関数 my_click の switch で使われていない変数 sum が使われているところでエラーが出ています。
というか、そもそも case 文には論理式が使えません。
if ~ else if ~ を使ってください。

function my_click(){
    var a_sum=sum_chk_value("A");
    var b_sum=sum_chk_value("B");
    var c_sum=sum_chk_value("C");

    if (a_sum==b_sum && a_sum==c_sum) {
        alert("同数!");
    } else if ( a_sum==b_sum && a_sum<c_sum) {
        alert("CC!");
    } else if ( a_sum>b_sum && b_sum>c_sum) {
        alert("AA!");
    } else if ( b_sum>a_sum && a_sum>c_sum) {
        alert("BB!");
    } else if ( a_sum==b_sum && a_sum>c_sum) {
        alert("AB!");
    }
}

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません