无法获取document.write来显示更新的变量

时间:2013-06-12 14:45:08

标签: javascript variables document.write input-field

另一个新手问题,根植于对JS的非常浅薄的理解。

我正在构建一个小型在线多步骤表单(通过隐藏div来在单个html中制作),其中每个按钮按下增加一个具有固定数字的var:

JS:

var score = 20;

function updateScore (){
            score = score + 10;
            result.value = score;
        }

我希望显示得分:

使用<input type="text" name="result" id="result" value="" size="" readonly>我得到正确的值(30)。

然而,当我使用<script>document.write(result)</script>时,我什么都没得到并使用<script>document.write(score)</script>我得到了原始的var(20)。

当我希望var在jquery进度条中输出时,同样的问题。

如何确保它是更新的var,它显示在document.write?

编辑:完成JS

var currentLayer = 'lp';
var score = 10;

function showLayer(lyr){
    hideLayer(currentLayer);
    document.getElementById(lyr).style.visibility = 'visible';
    document.getElementById(lyr).style.display = 'block';
    currentLayer = lyr;
}
function hideLayer(lyr){
    document.getElementById(lyr).style.visibility = 'hidden';
    document.getElementById(lyr).style.display = 'none'
}

function goTo(lyr){
    showLayer(lyr);
    score = score + 10;
    resultat.value = score;
}
function goToMinus(lyr){
    showLayer(lyr);
    score = score - 10;
    resultat.value = score;
}    

  $(function() {
    $( "#progressbar" ).progressbar({
      value: score
      });
  });

2 个答案:

答案 0 :(得分:0)

结果是一个HTML输入元素,因此打印结果将是:

<script>document.write(result.value)</script>

关于写入正确的“得分”var vlaue,确保只有一个“var得分”并且它在同一范围内。

答案 1 :(得分:0)

我建议您在document.getElementById('result').value函数中使用result.value反对updateScore来确保您访问正确的元素。

我添加了一个示例,其中setInterval每秒都会调用updateScore来说明正在更新的结果,

var score = 20;

function updateScore (){
            score = score + 10;      
            document.getElementById("result").value = score;
        }

setInterval(updateScore,1000);

这可以在以下小提琴中进行修改,

http://jsfiddle.net/d3QqN/