0

另一个菜鸟问题,根源在于对 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
      });
  });
4

2 回答 2

0

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

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

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

于 2013-06-12T14:54:38.957 回答
0

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

我已经包含了一个示例,setInterval它将每秒调用updateScore一次来说明正在更新的结果,

var score = 20;

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

setInterval(updateScore,1000);

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

http://jsfiddle.net/d3QqN/

于 2013-06-12T14:56:20.207 回答