[英]How to change the value of an asp label with JavaScript?
我正在嘗試在我擁有的面板頂部添加一個錯誤標簽。 我在頁面加載時用 C# 創建了一個按鈕,它調用一個 JavaScript 函數,我想在單擊時在我的面板上顯示一條錯誤消息。
C#:
private void CreateButton(int pID, string changeType)
{
ASPxButton btn = new ASPxButton();
btn.Text = "Execute Request";
btn.ID = "btn" + changeType;
btn.AutoPostBack = false;
btn.ClientSideEvents.Click = GetClientSideEventHandler(string.Format("OnProcessRequest(s, e, '{0}','{1}')", pID.ToString(), changeType));
TableRow oRow = new TableRow();
TableCell oCell = new TableCell();
oCell.CssClass = "table-cell";
oCell.Controls.Add(btn);
oRow.Cells.Add(oCell);
tblButtons.Rows.Add(oRow);
}
JS:
function OnProcessRequest$(pID, pChangeType) {
document.getElementById('errLabel').value = "Test";
}
ASPX:
<asp:Label ID="errLabel" runat="server"/>
當這段代碼運行時,它總是拋出以下錯誤:
錯誤:無法設置未定義或空引用的屬性“值”。
我也試過使用:
document.getElementById('<%=errLabel.ClientID%>').value = "Test";
但這也會引發錯誤。
在JS中單擊此按鈕時如何更改此標簽的值?
如果您可以使用該屬性,請嘗試將 ClientIDMode="Static" 添加到您的標簽中。 或者您可以添加 ClientID="errLabel" 作為替代。 發生的事情是 asp.net 會自動為您的字段提供一個生成的 id 用於在客戶端關閉,因此它不會匹配您的 id“errLabel”。
<asp:Label runat="server" ID="errLabel" ClientIDMode="Static"></asp:Label>
或者
<asp:Label runat="server" ID="errLabel" ClientID="errLabel"></asp:Label>
好的,要在 JavaScript 中更改 asp.net 標簽,您可以這樣做:
(我們假設您設置了標簽客戶端 ID 模式>
所以,如果我們在頁面上有標簽,你可以這樣做:
<asp:Label ID="Label1" runat="server" Text="" ClientIDMode="Static"></asp:Label>
上面要更改的 JavaScript 是這樣的:
var lbl = document.getElementById('<%=Label1.ClientID%>');
lbl.innerText = "Js lable text changed";
或者
lbl.innerHTML = "<h2>this is some big text by js</h2>"
對大小寫要非常小心,對 get 元素中的額外空格等要非常小心。
另外,不要忘記在標簽中包含 Text="" !!! (你錯過了這個!!!)。
JavaScript 非常古怪——一個小小的錯誤動作,它就會翻身回家。 (瀏覽器中的調試器相當於去看牙醫)。
您也可以使用 jQuery。
上面的內容變成了這樣:
var lbl = $('#Label1');
lbl1.text("js jquery text change");
現在,讓我們對文本框做同樣的事情。
我們的 asp.net 文本框:
<asp:TextBox ID="TextBox1" runat="server" ClientIDMode="Static" ></asp:TextBox>
JavaScript:
var txt = document.getElementById('<%=TextBox1.ClientID%>');
txt.value = "This is js text for text box";
作為 jQuery:
var txt = $('#TextBox1');
txt.val("js jquery text for the text box");
那么,對於asp.net 標簽? 您使用innerText 或innerHTML。 (或 text("your text here") with jQuery)
使用 jQuery,您可以使用 .value 而不使用 ()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.