• ベストアンサー

表示されません(>_<)!!

以下のように作ってみたんですけど、わたしは判定結果は四角の中に表示されるようにやったつもりだったんですけど、新しいページに「痩せてます」と表示されてしまいます。どこを直せば良いでしょう? お願いします <HTML> <HEAD> <TITLE>関数のテスト</TITLE> <SCRIPT language="JavaScript"> <!-- function test() { height = document.aaa.h.value; weight = document.aaa.w.value; himan = (height-100)*0.9; if (himan <= weight) { document.write("痩せてます。"); } else { document.write("太っています。"); } } //--> </SCRIPT> </HEAD> <BODY> <form name="aaa"> <table> <tr><td>身長</td><td><input name = "h"> </td></tr> <tr><td>体重</td><td><input name = "w"> </td></tr> <tr><td><input type="button" value ="判定" onClick = "test()" ></td></tr> <tr><td>判定結果</td><td><input name = "hi"> </td></tr> </table> </form> </BODY> </HTML>

質問者が選んだベストアンサー

  • ベストアンサー
noname#37134
noname#37134
回答No.4

こんばんは。昼間のうちに、いろいろ回答があり、アラートも出て、素晴らしいですね。私も勉強させていただきました。 せっかくですので、ブラウザで更新としても、新しいデータを入れるようには、ならないので、何度も試すために、リセットボタンを付けてみました。 このボタン<input type="reset" value="リセット">は、簡単に、いろんなときに付加して使えます。 <HTML> <HEAD> <TITLE>関数のテスト</TITLE> <SCRIPT language="JavaScript"> <!-- function test() { if (aaa.h.value == "") { alert("身長を入力してください。"); return false; } if (aaa.w.value == "") { alert("体重を入力してください。"); return false; } height = document.aaa.h.value; weight = document.aaa.w.value; himan = (height-100)*0.9; if (himan >= weight) {          document.aaa.hi.value="痩せてます。"; } else { document.aaa.hi.value="太っています。"; } } //--> </SCRIPT> </HEAD> <BODY> <form name="aaa"> <table> <tr><td>身長</td><td><input name = "h"> </td></tr> <tr><td>体重</td><td><input name = "w"> </td></tr> <tr><td><input type="button" value ="判定" onClick = "test()" ></td></tr> <tr><td>判定結果</td><td><input name = "hi"> </td></tr> </table> <hr> <input type="reset" value="リセット"> </form> </BODY> </HTML> ただし、これは、関数JavaScriptの練習ならそれでいいのですが、コンピュータを使うにしては、暗算でも判定できるような計算なので、実際的には、活用は、どうかなと思います。 参考に次のようなコメントを見つけたので、読んでみてください。 __________________ 標準体重を基に判断する 「ほっそり願望」に取りつかれて、やみくもに減量を実行する前に、まず自分が太っているかどうかを客観的に判断することが大切です。  その目安として、あなたの体重を標準体重と較べて見ましょう。    (身長-100)×0.9=標準体重(kg) (例)(160cm-100)×0.9=54kg  かつてはこのような数式で求めていましたが、これでは身長だけを基に計算しているのであまり正確とはいえません。 BMI(体格指数)を基に判断する そこで今日ではBMI(Body Mass Index:体格指数) といって・・・・ BMI=体重(kg)÷身長(m)2 の数式で求めます。 例えば体重54kgで身長160cmの場合は・・・・ BMI=54÷(1.6)2 =21.0 となります。  このBMI指数を基にしてやせか、標準か、太り気味か、肥満かを判定します。 BMI 判定 20未満 低体重(やせ) 20~24 標準体重(標準) 24~26.5 過体重(太り気味) 26.5以上 肥満体重(肥満) ________________ この4段階くらいで、判定が出せたら、利用価値が高いと思います。

tomo-nao
質問者

お礼

まぁこんなに詳しく教えて下さるなんて!!感激です~ありがとうございました!そうですね私としては関数の練習として作ってみたのですが実際に使う時はコメントを参考にして作っていきたいと思います。BMI判定のほうが信用できますしね(^_^) 本当にありがとうございました☆

その他の回答 (3)

  • kajix
  • ベストアンサー率33% (1/3)
回答No.3

ヾ(@⌒ー⌒@)ノおはよう御座います。kajixです。 xruzさんの補足です。 xruzさんのだと未入力の時にも太っていますとでるのでエラーのアラートを出すようにしました。 <HTML> <HEAD> <TITLE>関数のテスト</TITLE> <SCRIPT language="JavaScript"> <!-- function test() { if (aaa.h.value == "") { alert("身長を入力してください。"); return false; } if (aaa.w.value == "") { alert("体重を入力してください。"); return false; } height = document.aaa.h.value; weight = document.aaa.w.value; himan = (height-100)*0.9; if (himan >= weight) {          document.aaa.hi.value="痩せてます。"; } else { document.aaa.hi.value="太っています。"; } } //--> </SCRIPT> </HEAD> <BODY> <form name="aaa"> <table> <tr><td>身長</td><td><input name = "h"> </td></tr> <tr><td>体重</td><td><input name = "w"> </td></tr> <tr><td><input type="button" value ="判定" onClick = "test()" ></td></tr> <tr><td>判定結果</td><td><input name = "hi"> </td></tr> </table> </form> </BODY> </HTML> もう少し本当はチェックを入れた方が良いのですが時間が無いので(^∧^) ゴメンなさい。 急ぎでやったので間違ってるかもσ(^_^;)アセアセ... あとは少しづつ機能を追加していってください。

tomo-nao
質問者

お礼

お忙しいのにありがとうございました!アラートってこうやって使うんですねぇ。ごめんなさい超初心者で(>_<)まだ勉強し始めて4日目くらいなんですよ~。まだまだ修行中の身なのでこれからもどうぞよろしくお願いします☆ほんとにありがとうございました!

  • xruz
  • ベストアンサー率50% (72/143)
回答No.2

おはようございますtomo-naoさん、xruzです。 こんな感じでしょうか? <HTML> <HEAD> <TITLE>関数のテスト</TITLE> <SCRIPT language="JavaScript"> <!-- function test() { height = document.aaa.h.value; weight = document.aaa.w.value; himan = (height-100)*0.9; if (himan >= weight) {         // 変えました document.aaa.hi.value="痩せてます。"; // 変えました } else { document.aaa.hi.value="太っています。"; // 変えました } } //--> </SCRIPT> </HEAD> <BODY> <form name="aaa"> <table> <tr><td>身長</td><td><input name = "h"> </td></tr> <tr><td>体重</td><td><input name = "w"> </td></tr> <tr><td><input type="button" value ="判定" onClick = "test()" ></td></tr> <tr><td>判定結果</td><td><input name = "hi"> </td></tr> </table> </form> </BODY> </HTML> がんばってくださいね(~:~i

tomo-nao
質問者

お礼

ありがとうございました!うまく作動しましたよ~(^_^)でもこんな基本的なところでつまづくなんてあたしってばダメだなぁ(>_<)まだまだ修行中の身なのでこれからもどうぞよろしくお願いします☆ホントにありがとうございました!!

noname#37134
noname#37134
回答No.1

今、時間が無くて、正解が書けないのですが、 if (himan <= weight) { document.write("痩せてます。"); となっているので、判定をフォーム内でなく、すぐ書き出していると思います。 これは、判定をフォーム内に書くときの条件式とするべきですね。 <INPUT TYPE="text" NAME="hanteiA"> などのように、hanteiAをフォーム内に書き出すときの条件にしてみてください。 夕方だったら続きを考えられますが…

tomo-nao
質問者

お礼

ありがとうございます!今日yuri-mbcさんのを参考にもう一度がんばってみます!もしお時間があればつづきをお願いできますか?よろしくお願いします。ホントにありがとうございました☆

関連するQ&A

  • ifで<TR>を段落ごと消す・表示切り替えをしたいんですが…

    ifに持ってきた数字で<TR>を段落ごと消す表示切り替えをしたいんですが上手くいきません document.form1.test1.style.display = "none";のところがおかしいとは思ってるんですが… 昨夜からあれこれやってみたけどもう駄目>< どなたかお時間のある方がいらっしゃいましたら教えてください http://kissho.xii.jp/1/src/1jyou57340.html <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML lang="ja-JP"> <HEAD><TITLE>表示切り替えテスト</TITLE> <SCRIPT TYPE="text/javascript"> <!-- function kirikae(){ var test_in = document.form1.test_in.options[document.form1.test_in.selectedIndex].value; if (test_in == "1") { document.form1.test1.style.display = "none"; //ここがおかしいとは思うんですが document.form1.test2_2.style.display = "inline";} else if (test_in == "2") { document.form1.test2_2.style.display = "none"; document.form1.test1.style.display = "inline";} else { document.form1.test2_2.style.display = "inline"; document.form1.test1.style.display = "inline";} } </SCRIPT> </HEAD><BODY><FORM NAME="form1"><TABLE border="1"> <TR id="test1"> <TD> test1 </Td> </Tr> <TR id="test2"> <TD> test2 <input type="text" size="10" id="test2_2"> </Td> </Tr> <TR> <TD> <SELECT NAME="test_in" onChange="kirikae()"> <OPTION VALUE="0">0 <OPTION VALUE="1">1 test1をTRの段落ごと消す(ようにしたいんだけど消えない) <OPTION VALUE="2">2 test2のテキストエリアを消す </SELECT> </Td></Tr> </TABLE></FORM></BODY></HTML>

  • 外部ファイルを読み込めない

    初めまして。いつも質問やその回答を読ませていただいて、参考にさせていただいてます。 javascriptで作った超簡単なプログラムが動かないんです。 どなたか、助けてください。(>_<) 以下、test.htmlとtest.jsを作って、試して見ているのですが、動かない理由が分からず苦しんでいます。 =============test.html============= <html> <head> <script type="text/javascript" language="javascript" src="./test.js" ></script> </head> <body> <table> <form name="form2" method="post" onSubmit="return check()"> <tr><td><input type="text" name="names" size="50"></td></tr> <tr><td><input type="submit" name="submit" value="予約"></td></tr> </form> </table> </body> </html> =============test.html============= =============test.js============= function check(){ names=document.form2.names; if(names.value == ""){ alert("お名前を入力してください。"); names.focus(); return false; } else return true; } =============test.js============= どちらも、同じディレクトリに入れています。safari、ieでも×です。 どなたか、教えていただけませんでしょうか。

  • JavaScriptでBMI計算

    初めて質問しますので無礼があるかと思いますがお許しください。 JavaScriptを独学で勉強してます。そこでBMI計算ができるようなものを下のように様々なものを参考にしてつくってみたのですが、BMIがどんな値でも”低体重”しかでません。BMIの値によってそれぞれの警告画面が出るようにしたいんです;;どうすればいいのでしょうか?よろしくお願いします。 <HTML> <HEAD> <TITLE>関数のテスト</TITLE> <SCRIPT language="JavaScript"> <!-- function test() { if (aaa.h.value == "") { alert("身長を入力してください。"); return false; } if (aaa.w.value == "") { alert("体重を入力してください。"); return false; } height = document.aaa.h.value; weight = document.aaa.w.value; bmi = weight/height/100/height/100; if (aaa.bmi.value < 18.5) {          alert("低体重。"); }else{ if (aaa.bmi.value >25) { alert("肥満"); }else{ alert("標準") } } } //--> </SCRIPT> </HEAD> <BODY> <form name="aaa"> 身長:<input name = "h"><BR> 体重:<input name = "w"><BR> <input type="button" value ="測定" onClick = "test()" > <br> BMI:<input name = "bmi"> </form> </BODY> </HTML>

  • サブウィンドウから親ウィンドウのフォームへの書き込み

    よろしくお願いします。 やりたい事は サブウィンドウを開いて サブウィンドウのテキストボックスに入力した内容を 親ウィンドウのテキストボックスに書き込みたいのです。 以下親ウィンドウ(oya.html) <html> <head> <script type="text/javascript"> <!-- function search(){ window.open( 'sub.html' ,'childwin', "width=350,height=250,location=no,menubar=no,toolbar=no,resizable=yes,scrollbars=yes" ); } --> </script> </head> <body> <form name="mainform" method="POST" action="hoge.php"> <TABLE border="1"> <TR> <TD>A:<INPUT type="text" name="A" id="A"></TD> </TR> <TR> <TD>B:<INPUT type="text" name="B" id="B"></TD> </TR> <TR> <TD><input type="button" onclick="search();return false;" value="サブウィンドウ"></TD> </TR> <TR> <TD><center><input type="submit" name="exec" value="確認"></center></TD> </TR> </TABLE> </form> </body> </html> 以下サブウィンドウ(sub.html) <html> <head> <script type="text/javascript"> <!-- --> </script> </head> <body> <form name="subform"> <TABLE border="1"> <TR> <TD>A:<INPUT type="text" name="A" id="A"></TD> </TR> <TR> <TD>B:<INPUT type="text" name="B" id="B"></TD> </TR> <TR> <TD><input type="button" value="入力"></TD> </TR> </TABLE> </form> </body> </html> 以上です。親ウィンドウの中にformが入れ子状態になってしまうため javascriptで対応できないのかと思い質問させて頂きました。 ご教示お願いいたします。

  • JavaScriptのロジック?

    <HTML> <HEAD> <TITLE>JavaScript</TITLE> <SCRIPT type="text/javascript"> <!-- /* 同じ値を二重表示 */ function funDouble(){ alert( document.SampleForm.nameOne.value ); document.SampleForm.nameTwe.value = document.SampleForm.nameOne.value + document.SampleForm.nameOne.value; alert(document.SampleForm.nameTwe.value); } // --> </SCRIPT> </HEAD> <BODY> <form name="SampleForm" method="POST"> <table align="center"> <TR> <TD>OnClick機能 : <Input type="text" name="nameOne" value="Ok"><Input type="submit" value="押して!" onclick="funDouble()" ></TD> <TD>| 結果 => | </TD> <TD> OnChange後 同じ値を2重表示 ; <Input type="text" name="nameTwe" value="123456"></TD> </TR> </table> </form> </BODY> </HTML>

  • 配列の使い方

    JavaScript 初心者です。 下記ソースでinput type="text"でname="kazu1,name="kazu2"のように2個限定で使っているのですが将来的にDBから読んだ数分に変わる予定です。 その場合 eval(document.myForm.kazu1.value)+ の表現はどのように変えたらいいでしょうか。 配列の数はi7で持ってきています。 <script language="JavaScript"><!-- function ttlValue(i7){ goukei = eval(document.myForm.kazu1.value)+eval(document.myForm.kazu2.value); alert("sum "+goukei+"です"); } // --></script> </head> <table border=1> <tr> <td width="40%" ><input type="text" name="kazu1" value="10">%</td> <td width="40%" ><input type="text" name="kazu2" value="10">%</td> </tr> <tr> <td><input type="submit" name="button" value="keisan" onClick="ttlValue(2)" ></td> <td></td> </tr> </table> </form>

  • 同一nameの input type="text" の合計を計算したい

    初めて質問させて頂きます。 form 内で同じname名を付けられたテキストフィールドの値の合計を計算し、その値に定数を乗じた値を表示させたいのですが、出来ずに困っております。 name名を別にすれば簡単に出来そうなのですが、このinputが別CGIからの受け取りの関係で数が不定で同一nameが付いてしまいます。(inputは1個以上で上限は無し) CGI側を書き換える事は自分の技術的に不可能なので、このような質問となりました。 以下は自分なりに試行錯誤の末の拙いソースです。 どなたかお分かりになる方、ご教授を宜しくお願い致します。 <html> <head> <script type="text/javascript" src="prototype.js"></script> <script type="text/javascript"> <!-- function kakunin() { var sub = Form.getInputs('form1', 'text'); ( var subtotal = ~~~; ここに上で得た数字を合計するみたいなものがくるのかなと・・・) var total = subtotal * 200; document.form1.field_total.value = total; // 合計を表示 } // --> </script> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> </head> <body> <form action="" name="form1"> <table> <tr><td><input name="kazu" type="text" value="2"></td></tr> <tr><td><input name="kazu" type="text" value="1"></td></tr> <tr><td><input name="kazu" type="text" value="3"></td></tr> <tr><td>・・・増えたりします・・・</td></tr> <tr><td><input type="button" size="8" onclick="kakunin()" value="合計を確認"></td></tr> <tr><td><input type="text" name="field_total" size="30" value="total"></td></tr> </table> </form> </body> </html>

  • javascriptによる計算

    テキストボックス「a1~6」の値とテキストボックス「b1~6」に入力された値を足し算してテキストボックス「c1~6」(例…c[i] = a[i] + b[i])を計算するJavaScriptを作成しているのですが、結果がundefinedになってしまい上手くいきません。どうやったら動くのかどうかご教授ください。 以下ソース↓ <script language ="JavaScript"> function plus() { var intResult = 0; for (i=1; i<=6; i++){ intResult[i] = 0; if (!isNaN(document.forms["A"].all["a"+i].value) && !isNaN(document.forms["B"].all["b"+i].value)){ intResult[i] += parseInt(document.forms["A"].all["a"+i].value); intResult[i] += parseInt(document.forms["B"].all["b"+i].value); } <table border = 1> <tr> <td> <table border = 1> <tr> <td> <form name="A"> <input type = "text" size = 5 name = "a1"></input> </td> <td> <input type = "text" size = 5 name = "a2"></input> </td> <td> <input type = "text" size = 5 name = "a3"></input> </td> </tr> <tr> <td> <input type = "text" size = 5 name = "a4"></input> </td> <td> <input type = "text" size = 5 name = "a5"></input> </td> <td> <input type = "text" size = 5 name = "a6"></input> </form> </td> </tr> </table> </td> <td> <table boeder = 1> <tr> <input type = "button" onClick="plus()" value = "+"></input> </tr> </table> </td> <td> <table border = 1> <tr> <td> <form name = "B"> <input type = "text" size = 5 name = "b1"></input> </td> <td> <input type = "text" size = 5 name = "b2"></input> </td> <td> <input type = "text" size = 5 name = "b3"></input> </td> </tr> <tr> <td> <input type = "text" size = 5 name = "b4"></input> </td> <td> <input type = "text" size = 5 name = "b5"></input> </td> <td> <input type = "text" size = 5 name = "b6"></input> </form> </td> </tr> </table> </td> </tr> </table> 答え <form name = "C"> <table border = 1> <tr> <td> <input type = "text" size = 5 name = "c1"></input> </td> <td> <input type = "text" size = 5 name = "c2"></input> </td> <td> <input type = "text" size = 5 name = "c3"></input> </td> </tr> <tr> <td> <input type = "text" size = 5 name = "c4"></input> </td> <td> <input type = "text" size = 5 name = "c5"></input> </td> <td> <input type = "text" size = 5 name = "c6"></input> </td> </tr> </table> </form> </body> document.C.all["c"+i].value = intResult[i]; } } </script>

  • javascriptの記述方法について

    こんにちわ。 今、以下のような記述で、kei1~kei5までの合計をtotalに出そうと考えましたが、 function allcalc(){}内に書く記述で困っています。 form名を分けているのは、別の関数で各行の小計(kei1~5)を出すために分けてみましたが、あまり意味がなさそうで一つのform名に変更しようかとも思っています。 <HTML> <HEAD> <TITLE>Test</TITLE> <SCRIPT type="text/javascript"> <!-- function allcalc(total){ var al_total = 0; for (i=1; i <= 10; i++){ elementkei="total.form[" + i +"].element[2].value" if(elementkei != "") {al_total += elementkei} } document.form6.total.value = al_total; } //--> </SCRIPT> </HEAD><BODY><TABLE><FORM name="form1"> <TR><TD><INPUT type="text" name="baika1"></TD> <TD><INPUT type="text" name="suryou1"></TD> <TD><INPUT type="text" name="kei1"></TD> </FORM> <FORM name="form2"> <TR><TD><INPUT type="text" name="baika2"></TD> <TD><INPUT type="text" name="suryou2"></TD> <TD><INPUT type="text" name="kei2"></TD> </FORM> ・・・・・・・・・・・・・これが5つあります <FORM name="form6"> <TR><TD>合計</TD> <TD><INPUT type="text" name="total"> <TD><INPUT type="button" name="go" value="合計計算" OnClick="allcalc(document)"></TD> </FORM></TABLE></BODY></HTML> これを動作させてみると、「total.form[がNullかオブジェクトではありません」とエラーが流れます。 恐らく、allcalcの引数とその参照の仕方が悪いと思うのですが、 書き方を変えてみても、同じようなエラーで止まってしまいます。 どなたか方法を教えていただけないでしょうか。

  • メールフォームエラー表示について

    お世話になります。 以下のフォーム内容エラー表示のスクリプトはWinIEでは動作するのですが、Firefox、Safariでは動作しません。なぜでしょうか?ご教授下さい。 又、メールアドレスを2つ入力個所を設け、その二つが異なる場合エラーを出したいのですが、どうしたらいいでしょうか? そして、あるチェックボックスにチェックを入れて場合のみ送信ボタンが押すことができるようにするにはどうしたらいいでしょうか? 度重なる質問で申し訳ありません。 何卒宜しくお願い致します。 <html> <head> <script type="text/javascript"> <!-- // メールアドレスチェック function isAddress(address) { if(address.indexOf("@",0)<=0) { return false; } else { return true; } } // submit可能か判定(form1) function jdgSubmit1() { var errItem = ""; // お名前が空の場合 if (document.form1.item('name1').value == null || document.form1.item('name1').value == "") { errItem = errItem + "お名前を入力して下さい。<br />"; document.form1.item('name1').style.backgroundColor = "#BBBBBB"; } else { document.form1.item('name1').style.backgroundColor = "#ffffff"; } // ふりがなが空の場合 if (document.form1.item('name2').value == null || document.form1.item('name2').value == "") { errItem = errItem + "ふりがなを入力して下さい。<br />"; document.form1.item('name2').style.backgroundColor = "#BBBBBB"; } else { document.form1.item('name2').style.backgroundColor = "#ffffff"; } // E-mailが空の場合 if (document.form1.item('eaddress').value == null || document.form1.item('eaddress').value == "") { errItem = errItem + "メールアドレスを入力して下さい。<br />"; document.form1.item('eaddress').style.backgroundColor = "#BBBBBB"; } else { if (!isAddress(document.form1.item('eaddress').value)) { errItem = errItem + "正しいメールアドレスを入力して下さい。<br />"; document.form1.item('eaddress').style.backgroundColor = "#BBBBBB"; } else { document.form1.item('eaddress').style.backgroundColor = "#ffffff"; } } // 本文が空の場合 if (document.form1.item('content').value == null || document.form1.item('content').value == "") { errItem = errItem + "お問い合わせ内容を入力して下さい。<br />"; document.form1.item('content').style.backgroundColor = "#BBBBBB"; } else { document.form1.item('content').style.backgroundColor = "#ffffff"; } // エラーがあるか確認 if (errItem != "") { err.innerHTML = errItem; return false; } document.form1.submit(); } --> </script> </head> <body> <form name="form" action="mail-send.php" method="POST"> <div id="err"></div> <div> <table cellspacing="0" cellpadding="0"> <tr> <td>お名前</td> <td><input type="text" name="name1" size="30" maxlength="100" /></td> </tr> <tr> <td>ふりがな</td> <td><input type="text" name="name2" size="30" maxlength="100" /></td> </tr> <tr> <td>E-mail</td> <td><input type="text" name="eaddress" size="30" maxlength="100" /></td> </tr> <tr> <td>本文</td> <td><textarea name="content" rows="6" /></textarea></td> </tr> </table> </div> <input type="submit" value="送信" name="submit" id="submit" onClick="jdgSubmit1();return false" /> </form> </body> </html>

専門家に質問してみよう