Javascript简易数学练习

Javascript简易数学练习,javascript,html,Javascript,Html,我有这个密码 <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Untitled Document</title> </head> <body> <input onclick="result.value

我有这个密码

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<input onclick="result.value = m1*m2; m1.value = (+m1.value -1);" type="button" id="minus1" value="minus" />
<input onclick="result.value = m1*m2; m1.value = (+m1.value +1);" type="button" id="plus1" value="plus" />
<input type="textbox" id="m1" value="1" />
<br />
<input onclick="result.value = m1*m2; m2.value = (+m2.value -1);" type="button" id="minus2" value="minus" />
<input onclick="result.value = m1*m2; m2.value = (+m2.value +1);" type="button" id="plus2" value="plus" />
<input type="textbox" id="m2" value="1" />
<br />
<br />
Result :<input type="textbox" id="result" />
</body>
</html>

无标题文件



结果:

为什么每次我更改任何+或-按钮时都会得到NaN值??

您正在乘以
m1*m2
。您应该使用:
m1.value*m2.value

在某些浏览器中,
m1
将返回id为
m1
本身的元素。然而,您想要乘的只是值,因此
m1.value

已编辑的HTML:

<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>Untitled Document</title>
    </head>
    <body>
        <input onclick="result.value = m1.value*m2.value; m1.value = (+m1.value -1);" type="button" id="minus1" value="minus" />
        <input onclick="result.value = m1.value*m2.value; m1.value = (+m1.value +1);" type="button" id="plus1" value="plus" />
        <input type="textbox" id="m1" value="1" />
        <br />
        <input onclick="result.value = m1.value*m2.value; m2.value = (+m2.value -1);" type="button" id="minus2" value="minus" />
        <input onclick="result.value = m1.value*m2.value; m2.value = (+m2.value +1);" type="button" id="plus2" value="plus" />
        <input type="textbox" id="m2" value="1" />
        <br />
        <br />Result :
        <input type="textbox" id="result" />
    </body>
</html>

.

您正在乘以
m1*m2
。您应该使用:
m1.value*m2.value

在某些浏览器中,
m1
将返回id为
m1
本身的元素。然而,您想要乘的只是值,因此
m1.value

已编辑的HTML:

<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>Untitled Document</title>
    </head>
    <body>
        <input onclick="result.value = m1.value*m2.value; m1.value = (+m1.value -1);" type="button" id="minus1" value="minus" />
        <input onclick="result.value = m1.value*m2.value; m1.value = (+m1.value +1);" type="button" id="plus1" value="plus" />
        <input type="textbox" id="m1" value="1" />
        <br />
        <input onclick="result.value = m1.value*m2.value; m2.value = (+m2.value -1);" type="button" id="minus2" value="minus" />
        <input onclick="result.value = m1.value*m2.value; m2.value = (+m2.value +1);" type="button" id="plus2" value="plus" />
        <input type="textbox" id="m2" value="1" />
        <br />
        <br />Result :
        <input type="textbox" id="result" />
    </body>
</html>

.

您使用的是
m1*m2
,它是文本框的Id,而不是其值


使用:
result.value=m1.value*m2.value
而不是
result.value=m1*m2

您使用的是
m1*m2
,它是文本框的Id,而不是其值


使用:
result.value=m1.value*m2.value
而不是
result.value=m1*m2

啊,这么明显的错误。。。很抱歉为这个打开了一个线程++诚实的错误,总会发生!但是,由于我们在这里,我添加了一个建议(使用函数)。检查一下,可能会有帮助。@fame另外,如果用户提供了错误的输入,那么做
parseFloat(m1.value)
可能是一个不错的主意。哈哈,我刚刚找到了另一个线程,他们也提出了同样的建议!谢谢你们!我添加了@Christoph建议。在回答中勾选一个例子,在这个例子中,函数在继续之前验证
是否有一个数字。啊,这么明显的错误。。。很抱歉为这个打开了一个线程++诚实的错误,总会发生!但是,由于我们在这里,我添加了一个建议(使用函数)。检查一下,可能会有帮助。@fame另外,如果用户提供了错误的输入,那么做
parseFloat(m1.value)
可能是一个不错的主意。哈哈,我刚刚找到了另一个线程,他们也提出了同样的建议!谢谢你们!我添加了@Christoph建议。在回答中勾选一个示例,其中函数在继续之前验证
是否有数字。