-3

次のコードのどこが悪いのですか (if ステートメントに関係していると思います)、オンラインで調べてみましたが、成功しませんでしたか?

<form action="#" method="post" name="formSeven">
  <p><input type="text" name="z11" value="" size="4" /> <span> Adjusted BMI </span></p>
  <p><input type="text" name="z12" value="" size="4" /> <span> Age in years </span></p>
  <p><input type="text" name="z13" value="" size="4" /> <span> Male or Female </span></p>
  <p><input type="text" name="result7" value="" size="4" /> <span> BF% </span></p>
  <p><input onclick="calculate7()" type="BUTTON" value="Calculate" /></p>
</form>

<script type="text/javascript">// 
function calculate7() {
    var x = document.formSeven.z11.value;
    var y = document.formSeven.z12.value;
    var z = document.formSeven.z13.value;
    if (z == "Female"){
        document.formSeven.result7.value = x+y-5.4;
    }
    else if (z == "Male") {
        document.formSeven.result7.value = x+y-16.2;
    }
}
// ]]></script>
4

5 に答える 5

0
if (z == "Female")
 document.formSeven.result7.value = x+y-5.4;  
else if (z == "Male")
 document.formSeven.result7.value = x+y-16.2;
于 2013-06-07T07:27:25.030 に答える
0

値は文字列であるため、数値を追加する代わりに、文字列を連結します。

文字列を数値に解析します。

var x = parseInt(document.formSeven.z11.value, 10);
var y = parseInt(document.formSeven.z12.value, 10);
于 2013-06-07T07:39:12.627 に答える
0

それがあなたが望むことをするための最短の方法です。また、大文字と小文字が区別されないため、多少の誤差が生じます。

document.formSeven.result7.value=(z.toLowerCase()=='female'?(x+y-5.4):(x+y-16.2));

ここ

document.formSeven.result7.value=(z.toLowerCase()=='female'?(x+y-5.4):(z.toLowerCase()=='male'?(x+y-16.2):''));

最新の z を任意の値に置き換えます。

完全なコードは次のとおりです。

<form action="#" method="post" name="formSeven">
  <p><input type="text" name="z11" value="" size="4" /> <span> Adjusted BMI </span></p>
  <p><input type="text" name="z12" value="" size="4" /> <span> Age in years </span></p>
  <p><input type="text" name="z13" value="" size="4" /> <span> Male or Female </span></p>
  <p><input type="text" name="result7" value="" size="4" /> <span> BF% </span></p>
  <p><input onclick="calculate7()" type="BUTTON" value="Calculate" /></p>
</form>

<script type="text/javascript">// 
function calculate7() {
  var x = document.formSeven.z11.value;
  var y = document.formSeven.z12.value;
  var z = document.formSeven.z13.value.toLowerCase();
  var r = document.formSeven.result7;
  r.value=(z=='female'?(x+y-5.4):(z=='male'?(x+y-16.2):r.value));
}
// ]]></script>

コードをもう少しクリーンアップすることもできます

<form action="#" method="post" name="formSeven">
  <p><input type="text" name="z11" size="4" /> <span> Adjusted BMI </span></p>
  <p><input type="text" name="z12" size="4" /> <span> Age in years </span></p>
  <p><input type="text" name="z13" size="4" /> <span> Male or Female </span></p>
  <p><input type="text" name="result7" size="4" /> <span> BF% </span></p>
  <p><input onclick="calculate7()" type="button" value="Calculate" /></p>
</form>
<script type="text/javascript"> 
function calculate7() {
 var f=document.formSeven,
 x=f.z11.value,
 y=f.z12.value,
 z=f.z13.value.toLowerCase(),
 r=f.result7;
 r.value=(z=='female'?(x+y-5.4):(z=='male'?(x+y-16.2):r.value));
}
</script>
于 2013-06-07T07:30:22.470 に答える