【问题标题】:Javascript variable not resolving, appears as a blank or nullJavascript 变量未解析,显示为空白或 null
【发布时间】:2011-11-24 02:20:21
【问题描述】:

我目前正在为门户网站上的个人资料页面制作 YUI 进度条,但在 AJAX 调用后更新进度条时遇到了麻烦。

这是 view.jsp 中的初始代码,它在页面加载时呈现进度条;

var pb = new YAHOO.widget.ProgressBar({value:<c:out value="${percentage}" />,minValue:0,maxValue:100}).render('divid');

当用户在页面上编辑一个字段时,会有一个 AJAX 调用来更新字段以及配置文件完成的百分比值。

这里也运行了一个函数,它应该更新进度条,但它不起作用。

function() {
          items = this.get('responseData');
          var percentage = items[0].value;
          document.getElementById('percent').innerHTML = percentage + '%';
          var element = document.getElementById("divid");
          element.innerHTML = "";
          renderProgressBar(percentage, "divid");
       }

function renderProgressBar(percentage, id){
alert(percentage);

var pb = new YAHOO.widget.ProgressBar({value:10, minValue:0, maxValue:100}).render(id);
pb.set('value', percentage);

}

百分比值正在更新,因为我正在更新“百分比”div 的 innerHTML,并且它正在正确更新。

我还在 renderProgressBar 中显示一个警报,以确保那里的值也是正确的。

然而,在更新栏时,它只是不起作用,该值始终为 null 或为空。

有什么想法吗?

我还尝试在清除 div 标签后硬编码添加一个全新的进度条,这是呈现页面时的输出;

YAHOO.widget.ProgressBar({value:, minValue:0, maxValue:100}).render('divid');

如你所见,值为空。

更新:

出于绝望,我还尝试了另一个功能,我从其中一个元素中提取百分比,值得一试,但仍然没有价值......

function testFunction(percentage){
var el=document.getElementById('percent');
var pb = new YAHOO.widget.ProgressBar({value:el,minValue:0,maxValue:100}).render('basic');
}

【问题讨论】:

  • 是否有可能必须将该百分比值转换为数字,然后才能将其作为 ProgressBar 的参数传递?我不知道这个构造函数期望什么,但它看起来可能......
  • @Gatekeeper 我用 parseFloat() 试了一下,还是没有骰子。问题似乎出在我渲染新 ProgressBar 的语句中。硬编码的值当然显示得很好,但是当我把一个变量放在那里时,它不想在运行时显示。

标签: javascript progress-bar yui


【解决方案1】:

我认为您对render 函数的参数感到困惑。如您所见here 第一个参数是html 元素的id。你把“基本”放在那里,但应该 - “分开”。

【讨论】:

  • 抱歉,basic 是我代码中实际
    标记的名称。为了清楚起见,我在问题中将其更改为“除”。我已经纠正了问题中的错字。
猜你喜欢
  • 2021-09-06
  • 1970-01-01
  • 2020-06-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-01
相关资源
最近更新 更多