将值从代码隐藏传递到Javascript

我正在使用jQueryUI ProgressBar向用户显示他们使用了多少允许的文件存储空间。 百分比在代码隐藏中计算,应传递给Javascript。

Aspx代码

  $(function () { var pct = document.getElementById("filesPercentage").value; $("#progressbar").progressbar({ value: pct }); });    ...  
...

代码背后

 protected void Page_Load(object sender, EventArgs e) { filesPercentage.Value = "85"; } 

好像它无法从隐藏字段中获取百分比数字。 任何帮助,将不胜感激。

因为您的隐藏字段是服务器控件,所以ID可能会生成除filesPercentage其他filesPercentage (可能类似于ctl00_ctl00_filesPercentage

  • 您可能需要将生成的客户端ID应用于您的javascript document.getElementById("<%=filesPercentage.ClientID%>").value;
  • 或者使用另一种选择隐藏值的方法,例如$('[hidden's parent element] input[type="hidden"]').val()

另外,看起来进度条值期望一个数字,所以你可能需要做value: pct * 1value: parseInt(pct)

http://jsfiddle.net/pxfunc/QyZSs/

您需要获取隐藏输入的渲染ID

 var pct = document.getElementById("<%=filesPercentage.ClientID%>").value; 

从你在服务器上运行输入的那一刻起,最好使用asp:HiddenField而不是input

试试这个

 var pct = document.getElementById("<%=filesPercentage.ClientID %>").value; 

.net将修改您为控件提供的ID以确保它是唯一的,因此您不会使用正确的ID访问它。 如果为隐藏字段指定唯一的类名,则可以通过以下方式访问该值:

  var pct = $('.hiddenClass').val(); 

这有点清洁恕我直言:-)

 $("#progressbar").progressbar({ value: $("#<%=filesPercentage.ClientID%>").val() });