簡體   English   中英

將值從代碼隱藏傳遞給Javascript

[英]Passing value from code-behind to Javascript

我正在使用jQueryUI ProgressBar向用戶顯示他們已經使用了多少允許的文件存儲。 百分比是在后台代碼中計算的,應該傳遞給Javascript。

Aspx代碼

    <asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="server">
        <script type="text/javascript">
            $(function () {
                var pct = document.getElementById("filesPercentage").value;
                $("#progressbar").progressbar({
                    value: pct
                });
            });
        </script>
    </asp:Content>

    <asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
      ...
     <input type="hidden" runat="server" id="filesPercentage" />                      
     <div id="progressbar"></div>         
      ...
    </asp:Content>

背后的代碼

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

似乎無法從隱藏字段中獲取百分比數字。 任何幫助,將不勝感激。

您需要獲取隱藏輸入的渲染ID

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

從您在服務器上運行輸入的那一刻起,最好使用asp:HiddenField而不是input

由於您的隱藏字段是服務器控件,因此可能會將ID生成為filesPercentage其他filesPercentage (可能類似於ctl00_ctl00_filesPercentage

  • 您可能需要將生成的客戶端ID應用於javascript document.getElementById("<%=filesPercentage.ClientID%>").value;
  • 或使用另一種選擇隱藏值的方法,例如$('[hidden's parent element] input[type="hidden"]').val()

此外,progressbar值似乎需要一個數字,因此您可能需要輸入value: pct * 1value: parseInt(pct)

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

嘗試這個

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

.net將修改您提供的控件的ID,以確保它是唯一的,因此您不能使用正確的ID訪問它。 如果為隱藏字段賦予唯一的類名稱,則可以通過以下方式訪問值:

<input type="hidden" runat="server" id="filesPercentage" class="hiddenClass" /> 
var pct = $('.hiddenClass').val();

這有點干凈恕我直言:-)

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM