Javascript 试图制作一个计算复利的表格

Javascript 试图制作一个计算复利的表格,javascript,html,forms,Javascript,Html,Forms,我在这里找到了不同类型的代码片段,比如计算利息等等,但是找不到我需要的帮助 我正在制作一个简单的表单,并使用Javascript查找复合兴趣并以HTML格式输出 我已经使用了getDocumentById和innerHTML,并将其放置在parseInt()中。长话短说,我得到“NaN”作为输出 看看我最后做了什么,也许有人能指出我可能错过了什么。谢谢 <form onsubmit="return false"> <input id="a" name="a" type=

我在这里找到了不同类型的代码片段,比如计算利息等等,但是找不到我需要的帮助

我正在制作一个简单的表单,并使用Javascript查找复合兴趣并以HTML格式输出

我已经使用了getDocumentById和innerHTML,并将其放置在parseInt()中。长话短说,我得到“NaN”作为输出

看看我最后做了什么,也许有人能指出我可能错过了什么。谢谢

<form onsubmit="return false">
    <input id="a" name="a" type="number" step="any" placeholder="Present Value"> * (
    <input id="b" name="b" type="number" step="any" placeholder="Number of years"> +
    <input id="c" name="c" type="number" step="any" placeholder="Interest Rate">)^
    <input id="d" name="d" type="number" step="any" placeholder="N number of Years">=
    <button onclick="futureNyears()">Answer</button>
    <p id="futureNanswer"></p>
</form>
<script type="text/javascript">
    function futureNyears() {
        var a = parseInt(document.getElementById('a'));
        var b = parseInt(document.getElementById('b'));
        var c = parseFloat(document.getElementById('c'));
        var d = parseInt(document.getElementById('d'));

        var E = eval(b+c);
        var r = Math.pow(E, d);
        var f = eval(E * r);
        var g = f.toString();

        document.getElementById("futureNanswer").innerHTML = g;
    }
</script>

* (
+
)^
=
答复

函数futureNyears(){ var a=parseInt(document.getElementById('a')); var b=parseInt(document.getElementById('b')); var c=parseFloat(document.getElementById('c'); var d=parseInt(document.getElementById('d'); var E=评估值(b+c); var r=数学功率(E,d); var f=评估值(E*r); var g=f.toString(); document.getElementById(“FutureAnswer”).innerHTML=g; }
document.getElementById('a')返回dom元素,因此必须像下面那样从中获取值

var a = parseInt(document.getElementById('a').value); 

按ID获取元素后,需要访问value属性,parseInt接收的DOM对象始终等于NaN

函数futureNyears(){
var a=parseInt(document.getElementById('a').value);
var b=parseInt(document.getElementById('b').value);
var c=parseFloat(document.getElementById('c').value);
var d=parseInt(document.getElementById('d').value);
变量E=(b+c);
var r=数学功率(E,d);
var f=(E*r);
var g=f.toString();
document.getElementById(“FutureAnswer”).innerHTML=g;
}

* (
+
)^
=
答复


在本例中,您忘记编写document.getElementById('a').value(),因为它是表单元素,没有value()属性您无法提取其值。
Parseint()始终返回字符串中检测到的第一个数字。

您需要使用.value属性返回特定元素的值

var a = parseInt(document.getElementById('a').value);
value属性设置或返回选项的值(提交表单时发送到服务器的值)

HTML

<!DOCTYPE html>
<html>
<head>
    <title>CI</title>
</head>
<body>
    <form onsubmit="return false">
    <input id="a" name="a" type="number" step="any" placeholder="Present Value"> * (
    <input id="b" name="b" type="number" step="any" placeholder="Number of years"> +
    <input id="c" name="c" type="number" step="any" placeholder="Interest Rate">)^
    <input id="d" name="d" type="number" step="any" placeholder="N number of Years">=
    <button onclick="futureNyears()">Answer</button>
    <p id="futureNanswer"></p>
</form>
</body>
</html>

词
* (
+
)^
=
答复

JavaScript

<script type="text/javascript">
    function futureNyears() {
        var a = parseInt(document.getElementById('a').value);
        var b = parseInt(document.getElementById('b').value);
        var c = parseFloat(document.getElementById('c').value);
        var d = parseInt(document.getElementById('d').value);

        var E = eval(b+c);
        var r = Math.pow(E, d);
        var f = eval(E * r);
        var g = f.toString();

        document.getElementById("futureNanswer").innerHTML = g;
    }
</script>

函数futureNyears(){
var a=parseInt(document.getElementById('a').value);
var b=parseInt(document.getElementById('b').value);
var c=parseFloat(document.getElementById('c').value);
var d=parseInt(document.getElementById('d').value);
var E=评估值(b+c);
var r=数学功率(E,d);
var f=评估值(E*r);
var g=f.toString();
document.getElementById(“FutureAnswer”).innerHTML=g;
}

要从输入文本框中获取值,请使用

var a = parseInt(document.getElementById('a').value);  
而不是

var a = parseInt(document.getElementById('a'));  

* (
+
)^
=
答复

函数futureNyears(){ var a=parseInt(document.getElementById('a').value); var b=parseInt(document.getElementById('b').value); var c=parseFloat(document.getElementById('c').value); var d=parseInt(document.getElementById('d').value); var E=评估值(b+c); var r=数学功率(E,d); var f=评估值(E*r); var g=f.toString(); document.getElementById(“FutureAnswer”).innerHTML=g; }