功能中的变量值有问题

时间:2011-05-24 07:41:22

标签: javascript

我有以下脚本,其中变量从输入字段获取其值,但是当我运行我的函数时它不起作用,则不返回任何内容。我是JS的新手,所以我不确定它是否需要成为一个功能的一部分*即使我没有运气就试过这个或者什么......

/////////////////////////////////////////////////////////////////////

// Variables

// Content/SLA
var ContentMinutes = '';
var ContentMinutesSelector; // Switch Case
var ServiceLevel = 5;
var NoOfFrames = 2;

// Render Time (Hairier the Better)
var AvgFrameRenderTime = '';
var AvgFrameRenderTimeSelector = 10; // Switch Case
var CoresInTest = document.getElementById('CoresInTest').value;

// Other
var EstimatedCoreHours = NoOfFrames * CoresInTest * AvgFrameRenderTimeSelector;

// Cost Estimate
var CostEstimate = ServiceLevel * EstimatedCoreHours;


/////////////////////////////////////////////////////////////////////

//  Functions

function CalculateEstimate() {  
// Estimate Cost
parseInt(document.getElementById("PriceEstimate").innerHTML=CostEstimate.toFixed(2));

// Estimate Core Hours
parseInt(document.getElementById("EstimatedCoreHours").innerHTML=EstimatedCoreHours.toFixed(    2));
}

我的PriceEstimate和EstimatedCoreHours字段都只是空div,<div id="EstimatedCoreHours"></div>,如果我为变量定义一个值而不是document.getElementById,我的计算会起作用所以我相信我必须运行一个函数或什么东西来更新所有的vartiables?

但如果我设置......

var CoresInTest = document.getElementById('CoresInTest').value;

var CoresInTest = 10;

然后它运作正常......

它实际上不是我的回归,问题是我的变量没有调用,如果我用数字定义它们就可以了。

3 个答案:

答案 0 :(得分:1)

我想你需要做这样的事情,如果你想在你的div中获得计算数据。

document.getElementById("PriceEstimate").innerHTML=parseInt(CostEstimate.toFixed(2));    
// Estimate Core Hours
document.getElementById("EstimatedCoreHours").innerHTML=parseInt(EstimatedCoreHours.toFixed(2));

如果var CoresInTest = 10;工作正常,那么您的代码就错了。

CoresInTest是什么元素?它是一个文本字段吗?如果是这样,在元素渲染之前放置或调用此脚本?那么你将不得不重新初始化该变量。

答案 1 :(得分:0)

如果PriceEstimate和EstimatedCoreHours是元素,则应使用value属性 这可能适合你:

document.getElementById("PriceEstimate").value=parseInt(CostEstimate.toFixed(2),10);    
document.getElementById("EstimatedCoreHours").value=parseInt(EstimatedCoreHours.toFixed(2),10);

答案 2 :(得分:0)

如果var CoresInTest = 10;使其工作正常,那么它必须与document.getElementById('CoresInTest').value有关 - 那为什么不能正常工作?它是下拉列表吗?而不是我们猜测,告诉我们。