2011-06-05 82 views
0

我需要创建一个带有2个参数(price1,price2)的函数,它应该被添加在一起,并且在向它们添加Vat之后,结果将显示在文本字段中。带2个参数的Javascript函数

总体来说,我需要有3个文本字段:价格1price2结果。另外,结果的字段应按推算后按计算

到目前为止,我已经拿出来与document.write回报功能,但它显然不显示任何文本字段,它看起来像这样:

function getTotalPrice(price1,price2,Vat) 
{ 
    var sum=price1+priceb; 
    var Vat=20; 
    return ((sum*Vat)*100)/100; 
} 
document.write(getTotalPrice(4,3)); 

我不知道如何创建按钮可以计算出Vat并将其显示在第三个文本框中。

+1

为什么你有第三个(未使用)'Vat'在函数的参数变量? – Oded 2011-06-05 18:35:20

+0

谢谢您指出,确实,这一个也不起作用。 – epsilon 2011-06-05 18:44:52

+0

@提供的可选参数在技术上很好。我的问题不仅仅是为什么它没有被使用,而是为什么'Vat'被重新声明在函数内部,因为它将永远不会有任何值,除了20. – brymck 2011-06-05 18:45:23

回答

1

问题:

  1. Vat是未使用的为参数,即使它使用它总是在你的代码重新初始化并分配的20
  2. priceb的值是一个错字。

除此之外,代码似乎没有任何明显的问题。

function getTotalPrice(price1, price2, vat) { 
    vat = (vat === undefined? 20 : vat); // give vat a default value if empty 
    return (price1 + price2) * vat; 
} 

document.write(getTotalPrice(4, 3)); 

编辑:每下面的评论,这是真的,我想我应该先走一步,在这里简化数学。如果提问者有一个不同的等式,他应该多解释一下。

编辑: (大桶===未定义20:缸)是否正确,产生比未定义,默认20. 之外的任何值(大桶===未定义大桶:20)将只产生undefined或。

+1

除非我特别错误,否则似乎没有人注意到(( sum * vat)* 100)/ 100 == sum * vat。我认为的意图是(和*((100 +增值税)/ 100))。 – PAG 2011-06-05 18:51:45

+0

@PAG,是。我简化了上面的东西。 – brymck 2011-06-05 18:56:02

3

按钮使用输入标签创建。一个例子,你想做什么:

<input type="text" id="price1"> 
<input type="text" id="price2"> 
<input type="text" id="results"> 
<input type="button" value="Calculate" onclick="calculateResults()"> 

<script type="text/javascript"> 
function calculateResults() { 
    var price1Box = document.getElementById('price1'); 
    var price2Box = document.getElementById('price2'); 
    var resultsBox = document.getElementById('results'); 
    resultsBox.value = getTotalPrice(price1Box.value, price2Box.value); 
} 
</script> 

有更干净的方法来做到这一点,但这是最实际和最简单的。如果您希望getTotalPrice能够正常工作,则需要Bryan发布的修复程序。

0

这应该怎么做你后:

<script type="text/javascript"> 
    function getTotalPrice(price1,price2) 
    { 
    var vat = 20; 
    return (((price1+price2) * vat) * 100)/100; 
    } 

    function calculate() 
    { 
    var result = document.getElementById('result'); 
    result.value = getTotalPrice(document.getElementById('price1').value, document.getElementById('price2').value); 
    } 
</script> 

<form> 
    <input type="text" id="price1" /> 
    <input type="text" id="price2" /> 
    <input type="text" id="result" /> 
    <input type="button" value="Calculate" onclick="calculate()" /> 
</form> 
+0

谢谢,这正是我正在寻找的。无论如何,对不起,我正在研究这段代码一段时间(你现在可能正在笑),而且这些位最终是我实际尝试做的最清晰的图像。再一次非常感谢你! – epsilon 2011-06-05 19:03:58

+0

@epsilon不客气!如果这是你选择的那个,请接受这个答案。 – Ant 2011-06-05 22:58:01