我的Javascript已关闭。我是初学者。 我在三个表单字段中输入三个数字。加法有效,但不是倍增。也会喜欢一般的功能。这是代码。
<!DOCTYPE html>
<html>
<body>
<pre>
<form>
NUMBER1:
<input type="text" id="firstNumber" maxlength="100" size="20">
<br>
NUMBER2:
<input type="text" id="secondNumber" maxlength="100" size="20">
<br>
NUMBER3:
<input type="text" id="thirdNumber" maxlength="100" size="20">
<br><br>
<input name="Calculate Total" type="button" onclick="calculateText();" value="Add Total">
<input type="text" id="Total" maxlength="100" size="20">
<input name="Multiply Total" type="button" onclick="calculateText();" value="Multiply Total">
<input type="text" id="multiplyresult" maxlength="100" size="20">
</form>
</body>
</html>
function calculateText(){
var number1=document.getElementById('firstNumber');
var number2=document.getElementById('secondNumber');
var number3=document.getElementById('thirdNumber');
var result=document.getElementById('Total');
var multiplyresult=document.getElementById('multipyTotal');
var multiplyresult= number1 * number2 * number3;
if(number1.value=="" || number1.value!=parseFloat(number1.value)) number1.value=0;
if(number2.value=="" || number2.value!=parseFloat(number2.value)) number2.value=0;
if(number3.value=="" || number3.value!=parseFloat(number3.value)) number3.value=0;
result.value=0;
result.value=parseInt(result.value);
result.value=parseInt(result.value)+parseInt(number1.value)+parseInt(number2.value)+parseInt(number3.value);
}
在jsFiddle中:http://jsfiddle.net/kamull61/2shG3/
答案 0 :(得分:1)
我的评论暗示了您的代码存在的一些问题;我怀疑来自变量名称的选择不好,你只是迷惑自己(我们都去过那里!)。这是一个扩展的评论,以帮助您走上正确的轨道......
首先为变量创建更好的名称:
//these are the input elements, not their values!
var number1Element = document.getElementById('firstNumber');
var number2Element = document.getElementById('secondNumber');
var number3Element = document.getElementById('thirdNumber');
完成此操作后,很明显你不能做类似的事情:
var multiplyresult = number1Element * number2Element * number3Element;
由于这些变量代表输入元素而不是值。
需要注意的另一件事是:你将变量multiplyresult
声明为乘法结果的输入元素,然后将该变量重新声明为(虽然是错误的)乘法的结果:
var multiplyresult = document.getElementById('multipyTotal');
var multiplyresult = number1 * number2 * number3;
尝试创建描述变量代表的变量名称,这通常是编程中的一个好习惯。您可以更轻松地发现代码问题,更重要的是,使代码在未来更容易被其他人阅读和维护(包括您,以后!)
这些是你通过时间和练习学到的东西 - 所以请坚持下去!
答案 1 :(得分:0)
然而,我得到了这个看看http://jsfiddle.net/techsin/2shG3/2/
文本到数字的快捷方式是用它做一些数学运算而不是parsefloat和int。适用于某些情况。
var result=getId('Total'),
multiplyresult=getId('multiplyresult'),
n1,n2,n3;
function getValues(){
n1=getId('firstNumber').value,
n2=getId('secondNumber').value,
n3=getId('thirdNumber').value;
}
console.log((n1)*(n2)*(n3));
window.addIt= function(){ getValues(); result.innerText=(+n1)+(+n2)+(+n3);};
window.multiply= function(){ getValues(); multiplyresult.innerText=(n1)*(n2)*(n3); };
function getId(x){ return document.getElementById(x);}