2011-05-24 37 views
0

我有一個腳本,它從輸入字段中調用變量值並將它們相乘, 當時我的函數沒有執行,我也沒有任何提醒,我認爲這是因爲我的if語句,任何人都可以看到最新出了什麼問題?乘法變量不報警

function Calculate() { 

    var ContentMinutes = document.getElementById ("ContentMinutes").value; 
    var ContentMinutesSelect = document.getElementById('ContentMinutesDD') 
     .options[document.getElementById('ContentMinutesDD').selectedIndex].value 

    if (ContentMinutesSelect == 0.0166) 
    { 
     var RenderingHours = 10; 
     var VideoHours = 5; 
     var VideoSeconds = 1; 
     document.getElementById("RenderHours").innerHTML=RenderingHours; 
     document.getElementById("VideoHours").innerHTML=VideoHours; 
     document.getElementById("VideoSeconds").innerHTML=VideoSeconds; 
    } 
    else if (ContentMinutesSelect == 0.0003) 
    { 
     var RenderingHours = 1540; 
     var VideoHours = 54; 
     var VideoSeconds = 1; 
     document.getElementById("RenderHours").innerHTML=RenderingHours; 
     document.getElementById("VideoHours").innerHTML=VideoHours; 
     document.getElementById("VideoSeconds").innerHTML=VideoSeconds; 
    } 
    else 
    { 
     var RenderingHours = 6410; 
     var VideoHours = 345; 
     var VideoSeconds = 124; 
     document.getElementById("RenderHours").innerHTML=RenderingHours; 
     document.getElementById("VideoHours").innerHTML=VideoHours; 
     document.getElementById("VideoSeconds").innerHTML=VideoSeconds; 
    } 


    var NoOfFrames = document.getElementById ("NoOfFrames").value; 
    //var EstimatedCoreHours = document.getElementById ("EstimatedCoreHours").value; 
    var ServiceLevel = document.getElementById('SerivceLevelDD') 
     .options[document.getElementById('SerivceLevelDD').selectedIndex].value; 
    var RenderHours = 1; 
    var CoresInTest = document.getElementById ("CoresInTest").value; 

    var EstimatedCoreHours = GetNumeric(NoOfFrames) 
     * GetNumeric(RenderingHours) 
     * GetNumeric(CoresInTest); 

    var EstimatedTotal = GetNumeric(ServiceLevel) 
     * GetNumeric(EstimatedCoreHours); 

    alert('Estimated Cost = ' 
     +EstimatedTotal.toFixed(2) 
     + 'Estimated Core Hours = ' 
     +EstimatedCoreHours); 

    document.getElementById("EstimatedCoreHours").innerHTML = 
     EstimatedCoreHours.toFixed(2); 
    document.getElementById("EstimatedTotal").innerHTML = 
     EstimatedTotal.toFixed(2); 

    document.getElementById("EstimatedCoreHours").style.backgroundColor="yellow"; 
    document.getElementById("EstimatedTotal").style.backgroundColor="yellow"; 
} 

function GetNumeric(val) { 

    if (isNaN(parseFloat(val))) { 
     return 0; 
    } 
    return parseFloat(val); 
} 
+0

試着去http://jslint.org,將你的代碼粘貼到textarea中,然後點擊'jslint'。 – karim79 2011-05-24 11:08:43

+0

如果您將代碼減少到可以重現錯誤的最小值,它將非常有幫助。這樣做,你會經常找到解決方案。如果沒有,請將其發佈到此處。 – RobG 2011-05-24 11:47:50

+1

如果我們不知道ContentMinutesSelect的價值是什麼,我們不能檢查問題是什麼...你能給我們一個鏈接到你正在嘗試這個頁面的頁面嗎? – DoXicK 2011-05-24 12:03:54

回答

0

if (ContentMinutesSelect == 0.0166)我認爲,當你.value的你會得到字符串結果。

所以,你的比較應該是

if (ContentMinutesSelect == "0.0166")

+0

似乎沒有工作,不能想到腳本爲什麼不起作用 – Liam 2011-05-24 11:17:35

+0

無關,如果一個表達式是一個數字,等號運算符會強制另一個表達式編號。 – RobG 2011-05-24 11:43:12

0

您的代碼會顯示沒有警告如果任何行它導致錯誤之前,就像如果沒有與ID元素「ContentMinutes」你文件。調試的最佳方式是使用類似螢火蟲的東西,或者您可以隨時放入一堆警報並找出錯誤。