2013-12-17 65 views
0

我的Javascript已關閉。我是一名初學者。 我在三個表單域中輸入三個數字。加法工作,但不是乘法。也會喜歡平均功能。這是代碼。JavaScript乘以3整數

<!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/

+6

爲什麼你會希望能夠乘** **輸入ALA'NUMBER1 * NUMBER2 * number3'但必須添加自己的** **數值ALA'parseInt函數(number1.value)+ parseInt函數(NUMBER2 .value)+ parseInt(number3.value)'?從那裏開始... – kaveman

回答

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; 

儘量使變量名稱描述變量所代表的內容,這在編程中通常是一種很好的做法。爲您與您的代碼發現的問題,更重要的是它變得更容易,使代碼更容易閱讀和某人在未來否則維持(你包括,在未來!)

這些都是你學習的東西隨着時間和練習 - 所以堅持下去!

+0

這真是太棒了,我很欣賞鼓勵。 – kamull61

0

這是因爲jsfiddle更難。 onclick事件無法與下面的js連接。讓它很難這樣做。還有兩種附加事件的方式。

但是,我得到這個看看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);}