簡體   English   中英

在jQuery中未定義Asp.Net控制值返回

[英]Asp.Net Control Value return undefined in Jquery

在我的項目中,當基於文本框值單擊標簽時,我需要更改動態ASP控件的可見性。 所以我首先嘗試在單擊標簽時獲取文本框值,但其返回undefined 我正在搜索並得到了我嘗試過的兩種方法,它也返回相同的結果。

我的嘗試:

        <script language="javascript" type="text/javascript">

                  $(document).ready(function() {

                      $(document).on("click", "#lblShow", function() {

                      alert($('#<%=txtTotalVersion.ClientID%>').val());

                       alert($('input[id$=txtTotalVersion]').val());

                      var xTotlal =$('#<%=txtTotalVersion.ClientID%>').val()
                          var i = 0;
                       for (i = 0; i < xTotlal; i++) {

                              $('#createDiv' + i).style.display = "blcok";
                              $('#createDiv1' + i).style.display = "block";
                              $('#createDiv2' + i).style.display = "block";
                              $('#createDiv3' + i).style.display = "block";
                          }

                      });

                  });

              </script>

的HTML

   <div id="DivCompName">
         <asp:TextBox runat=server ID="txtTotalVersion" Visible="false"></asp:TextBox>
         <asp:TextBox runat=server ID="txtCurrentDisplay" Visible="false"></asp:TextBox>
      </div>

前兩個警報返回未定義。

Visible="false"是asp.net屬性,在這種情況下,您的控件將不會在客戶端呈現。 因此,您的客戶端腳本將找不到該控件,因為它不存在!

如果要在客戶端存儲一些值並且不想顯示它,則可以使用HiddenFields ,也可以通過使用CSS樣式display:none;隱藏相同的控件display:none; (請勿為此使用Visible="false"

您可以添加ClientIDMode = Static並從jquery調用它

<asp:TextBox runat=server ID="txtTotalVersion" Visible="false" ClientIDMode="Static"></asp:TextBox>

<script>
    $(document).ready(function () {
        alert("#txtTotalVersion").val();
    })
</script>

原因是,控件的客戶端ID可能不是為它分配的ID =“ xxx”,如果控件在另一個asp.net服務器控件中,則在添加ClientIDMode之后,您要告訴服務器對待此控件帶有靜態ID

了解更多: msdn

暫無
暫無

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

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