在Javascript函数中嵌入Javascript函数

在Javascript函数中嵌入Javascript函数,javascript,function,Javascript,Function,我需要一个函数来确定:(1)如果两个输入有值,抛出一个错误。(2) 如果两个输入都没有值,则抛出错误。(3) 如果输入B或输入D有值,则确定要使用的计算函数。这两个计算函数在作为 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

我需要一个函数来确定:(1)如果两个输入有值,抛出一个错误。(2) 如果两个输入都没有值,则抛出错误。(3) 如果输入B或输入D有值,则确定要使用的计算函数。这两个计算函数在作为

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();"
错误是有效的,但我没有正确调用计算函数,我确信这是显而易见的,但我看不到。答案不再显示,就像添加错误函数之前一样

<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>

函数compute(){
var B=document.getElementById(“input_B”).value;
var D=document.getElementById(“input_D”).value;
如果(B!=“”&D!=“”){
警告(“您只能输入评估或年度财产税。”);
}否则,如果(B!=“”){
计算(B);
}否则,如果(D!=“”){
计算2(D);
}否则{
提醒(“您必须在评估或年度财产税中输入价值。”);
}
}
函数计算(Atext、Btext、Ctext、表单){
var A=解析浮点(Atext);
var B=解析浮点(Btext);
var C=parseFloat(Ctext);
form.Answer.value=((B-A)*C)/1000;
}
函数Calculate2(Atext、Ctext、Dtext、表单){
var A=解析浮点(Atext);
var C=parseFloat(Ctext);
var D=解析浮点(Dtext);
form.Answer.value=D-((A*C)/1000);
}
函数ClearForm(表单){
form.input_A.value=“”;
form.input_B.value=“”;
form.input_C.value=“”;
form.input_D.value=“”;
form.Answer.value=“”;
}

您缺少参数,无法正确调用函数。 试试下面的

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.");   
    } 
}
如果您的
compute()

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);
}

你不应该在
Calculate
Calculate2
中传递比“D”和“B”更多的值吗?你能在jsfiddle上发布你的问题吗?@ChrisCarew我尝试在compute函数中添加A+C,传递到Calculate和Calculate2中,但运气不佳。我想我可能在函数中以不同的方式定义变量,导致混乱?完整的代码在这里:站点本身的一点:您可能会发现添加一个“this field required”指示符并以某种方式显示哪两个字段是/不是必需的是有益的。对于这个.form[0]或这个.forms[0]来说,还是不走运。请尝试使用
document.getElementById(“docForm”)
where“docForm”是您表单的ID。@DouglasA.Crosby谢谢-除了传递所有变量之外,这还起到了作用。