Javascript 乘变不报警
我有一个脚本,它从输入字段调用变量值并将它们相乘, 在我的函数没有执行的那一刻,我也没有收到任何警报,我想这是因为我的if语句,有人能看到哪里出了问题吗Javascript 乘变不报警,javascript,Javascript,我有一个脚本,它从输入字段调用变量值并将它们相乘, 在我的函数没有执行的那一刻,我也没有收到任何警报,我想这是因为我的if语句,有人能看到哪里出了问题吗 function Calculate() { var ContentMinutes = document.getElementById ("ContentMinutes").value; var ContentMinutesSelect = document.getElementById('ContentMinutesDD')
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);
}
如果contentMinuteSelects==0.0166,我想当您执行.value时,您将得到字符串结果
所以你的比较应该是
如果ContentMinutesSelect==0.0166如果代码前面的任何一行导致错误,例如文档中没有id为“ContentMinutes”的元素,则代码将不显示任何警报。最好的调试方法是使用firebug之类的工具,或者您可以随时输入一组警报,找出错误所在。尝试将代码粘贴到文本区域,然后单击“jslint”。如果您将代码减少到再现错误的最小值,这将非常有帮助。在这样做的过程中,您通常会找到解决方案。如果我们不知道ContentMinutesSelect的值是多少,我们就无法检查问题出在哪里。。。你能给我们一个链接到你正在尝试的页面吗?似乎不起作用,我想不出为什么脚本不起作用。如果一个表达式是数字,equals操作符将强制另一个表达式为数字。