2016-02-19 49 views
0

這是我第一次使用JavaScript,因此如果這是特別混亂的道歉。我想創建能夠統計出基於一次計算按鈕被擊中在箱子1,2和3中輸入的值的研究樣本「(.forthBox.value下的總和)一個基本的計算器。如何基於表單域在JavaScript中進行實時計算?

到目前爲止,這個工作在js.fiddle,但不是當我嘗試將代碼複製到我的網站上。有沒有人有什麼想法可能會導致這一點?

謝謝, 克里斯

<script type="text/javascript"> 
 
    function calc() { 
 
    var form = document.getElementById('autoSumForm'); 
 
    one = form.firstBox.value; 
 
    two = form.secondBox.value; 
 
    three = form.thirdBox.value; 
 
    form.fourthBox.value = ((((two) * (two)) * 0.25)/(((three)/100) * ((three)/100))/(1 + (((two) * (two)) * 0.25)/(((three)/100) * ((three)/100) * (one)))); 
 
    } 
 

 
    function stopCalc() { 
 
    clearInterval(interval); 
 
    } 
 
</script> 
 

 
<form id="autoSumForm"> 
 

 
    Population Size 
 
    <input class="right" type=text name="firstBox" value="" onFocus="startCalc();" onBlur="stopCalc();">Confidence Level 
 
    <select name="secondBox"> 
 
    <option value="1.645">90%</option> 
 
    <option value="1.96">95%</option> 
 
    <option value="2.576">99%</option> 
 
    </select> 
 

 
    Margin of Error 
 
    <input class="right" type=text name="thirdBox" value="" onFocus="startCalc();" onBlur="stopCalc();"> 
 

 
    <input type="button" value="Calculate" onClick="calc()" name="button">Sample Needed 
 
    <input class="right" type=text name="fourthBox"> 
 

 
</form>

+0

真的嗎?它不適用於我的jsFiddle https://jsfiddle.net/j08691/3x6g4L5e/。我在這裏運行時遇到同樣的錯誤'Uncaught TypeError:無法讀取未定義的屬性'firstBox'。您也正在使用應該避免的舊的JavaScript遺留JavaScript表示法。 – j08691

+0

我只是再看一遍,發現我在這裏粘貼了一箇舊版本。我用我的最新版本更新了我的問題。在jsBin這一件作品,但不是的jsfiddle(只添加到我的困惑(jsBin:https://jsbin.com/kitotoyise/edit?html,js,output) – CJ24K

+0

'的onfocus = 「startCalc();」'在哪裏這個函數?在你的stopCalc函數中,來自'clearInterval(interval)'的'interval'是什麼? – j08691

回答

0

需要,所以你在它訪問的元素使用的getElementById的形式。

<script type="text/javascript"> 
function calc(){ 
    var form = document.getElementById('autoSumForm') 
    one = form.firstBox.value; 
    two = form.secondBox.value; 
    three = form.thirdBox.value; 
    form.fourthBox.value = ((((two) * (two)) * 0.25)/(((three)/100) * ((three)/100))/(1 + (((two) * (two)) * 0.25)/(((three)/100) * ((three)/100) * (one)))); 
} 
</script>