[英]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.