2016-08-29 24 views
0

我已经组合了一个计算器根据用户输入计算价格。它可以很好地处理一个输入,但现在我必须使用第二个用户输入来扩展它。但是这里有一个问题:用户可能不想把任何东西放到现场,所以它将是空的。这就是刹车我的代码。我可以复制计算器函数,并返回值并将这两个值一起添加到第三个函数中,但当存在空值时它将不起作用。添加两个javascript函数(取决于输入)

只是为了它的缘故,一些琐碎的HTML代码:

//When I only calculate with this user input, its easy 
<input type="text" id="rocktext"><br> 
// But how to consider this and do the same exact calculations like with the 
//first one and add those two result together? 
<input type="text" id="rocktext2"><br> 

到底的代码应该是这样的:

  1. 以第一用户输入,计算价格(如在代码如下)

  2. 如果(!!)有第二个用户输入,计算出价格并将它加到 第一个

我是一个白痴尝试与JS或只是一个白痴在第一个?

希望听到你,伙计们!

J.

初始JS代码如下:

function priceCalc() { 
    var inputs = document.getElementById("rocktext").value; 
    var length = inputs.length;   
    var accept = 6; 
    var initPrice = 8; 

    if (inputs<=accept){ 


       // Since the code is much simpler right now i just put the result in HTML as follows: 
       document.getElementById("rockpricetotal").innerHTML = initPrice + " dollars"; 

       //I can also return the the value calculated here like so: 
       //retVal = initPrice; 
      } 


      else { 

       var intLength = parseInt(length, 10); 
       var lengthGap = intLength - accept; 
       var totals = lengthGap * 0.8 + initPrice; 
       var prec = totals.toPrecision(3); 

       // Since the code is much simpler right now i just put the result in HTML as follows: 
       document.getElementById("rockpricetotal").innerHTML = prec + " dollars"; 

       // Here also the return clause can be possible with the calculation result like so: 
       //retVal = prec; 
      } 

     // And the final return as an alternative to the innerHTML : 
     // return retVal; 

}

+0

如果你使用''两个'输入'并给他们一个初始值为0.00('value ='0'')? –

回答

0

使其成为可伸缩的,可以将类添加到所有其可以是该函数的输入(像calcInput),所以你迭代所有这些,如果该值不是空的(如果它是一个有效的数字),你把它放在计算中。

或者,你可以验证,如果第二输入是空的,如果是这样,来电functionOne,如果没有,来电functionTwo:

function twoDifferentWays() { 
    var valueOne = document.querySelector("#rocktext").value; 
    var valueTwo = document.querySelector("#rocktext2").value; 

    if (!!valueTwo && !isNaN(valueTwo)) { 
    callsFunctionOne(valueOne, valueTwo); 
    } else { 
    callsFunctionTwo(valueOne, valueTwo); 
    } 
} 
+0

谢谢!你太好了! –