0

判断する関数が必要です: (1) 2 つの入力に値がある場合、エラーをスローします。(2) どちらの入力にも値がない場合は、エラーをスローします。(3) 入力 B または入力 D に値がある場合、どの計算関数を使用するかを決定します。次のように呼び出されると、両方の Calculate 関数が機能します。

onClick="Calculate(this.form.input_A.value, this.form.input_B.value, this.form.input_C.value, this.form)"
onClick="Calculate2(this.form.input_A.value, this.form.input_C.value, this.form.input_D.value, this.form)"

しかし、私が以下の関数を呼び出すために使用するとき:

onclick="compute();"

エラーは機能しますが、Calculate 関数を正しく呼び出していません。明らかなものだと確信していますが、表示されません。エラー関数が追加される前のように、回答が表示されなくなりました。

<SCRIPT LANGUAGE="JavaScript">

function compute() {
  var B = document.getElementById("input_B").value;
  var D = document.getElementById("input_D").value;

  if (B != "" && D != "") {
    alert("You may only enter Assessment or Annual Property Taxes.");
  } else if (B != "") {
    Calculate(B);
  } else if (D != "") {
    Calculate2(D);
  } else {
    alert("You must enter a value into either Assessment or Annual Property Taxes.");
  }
}

function Calculate(Atext, Btext, Ctext, form) {
  var A = parseFloat(Atext);
  var B = parseFloat(Btext);
  var C = parseFloat(Ctext);
  form.Answer.value = ((B - A) * C) / 1000;
}

function Calculate2(Atext, Ctext, Dtext, form) {
  var A = parseFloat(Atext);
  var C = parseFloat(Ctext);
  var D = parseFloat(Dtext);
  form.Answer.value = D - ((A * C) / 1000);
}

function ClearForm(form) {
  form.input_A.value = "";
  form.input_B.value = "";
  form.input_C.value = "";
  form.input_D.value = "";
  form.Answer.value = "";
}

</SCRIPT>
4

2 に答える 2

1

引数が欠落しており、関数を正しく呼び出していません。次のことを試してください...

function compute() {   
    var B = document.getElementById("input_B").value;   
    var D = document.getElementById("input_D").value;    
    var A = document.getElementById("input_A").value;   
    var C = document.getElementById("input_C").value; 

    if (B != "" && D != "") {     
        alert("You may only enter Assessment or Annual Property Taxes.");   
    } else if (B != "") {     
        Calculate(A, B, C, this.forms[0]);   
    } else if (D != "") {     
        Calculate2(A, C, D, this.forms[0]);   } 
    else {     
        alert("You must enter a value into either Assessment or Annual Property Taxes.");   
    } 
}
于 2012-08-13T19:24:35.910 に答える
0

関数が 1 つのパラメーターのみを送信してcompute()呼び出す場合は、1 つのパラメーターのみを必要とする新しい関数を作成する必要があります。Calculate()Calculate2()

function CalculateB(Btext) {
  var B = parseFloat(Btext);
  var form = document.getElementById("docForm");
  form.Answer.value = B / 1000;
}

function CalculateD(Dtext) {
  var D = parseFloat(Dtext);
  var form = document.getElementById("docForm");
  form.Answer.value = D - (1 / 1000);
}
于 2012-08-13T19:33:14.097 に答える