首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用JavaScript更改asp标签的值?

如何使用JavaScript更改asp标签的值?
EN

Stack Overflow用户
提问于 2020-11-20 06:22:12
回答 2查看 767关注 0票数 0

我正在尝试将错误标签添加到我拥有的面板的顶部。我在页面加载时在C#中创建了一个按钮,该按钮调用一个JavaScript函数,当单击该函数时,我希望在面板上显示一条错误消息。

C#:

代码语言:javascript
运行
复制
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:

代码语言:javascript
运行
复制
function OnProcessRequest$(pID, pChangeType) {
    document.getElementById('errLabel').value = "Test";
}

ASPX:

代码语言:javascript
运行
复制
<asp:Label ID="errLabel" runat="server"/>

当此代码运行时,它总是抛出以下错误:

错误:无法设置未定义引用或空引用的属性'value‘。

我也尝试过使用:

document.getElementById('<%=errLabel.ClientID%>').value =“测试”;

但这也抛出了错误。

在JS中点击此按钮后,如何更改此标签的值?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-11-20 11:10:39

好的,要在JavaScript中更改asp.net标签,您可以这样做:

(我们假设您设置了标签client id mode>

所以,如果我们在页面上有标签,你可以这样做:

代码语言:javascript
运行
复制
<asp:Label ID="Label1" runat="server" Text="" ClientIDMode="Static"></asp:Label>

上面要更改的JavaScript如下所示:

代码语言:javascript
运行
复制
 var lbl = document.getElementById('<%=Label1.ClientID%>');

 lbl.innerText = "Js lable text changed";

代码语言:javascript
运行
复制
 lbl.innerHTML = "<h2>this is some big text by js</h2>"

要非常小心大小写,在get元素中要非常小心额外的空格等。

此外,不要忘记在标签中包含Text="“!(您错过了这个!)。

JavaScript非常古怪--一个小小的错误动作,它就会翻滚回家。(浏览器中的调试器等同于去看牙医)。

您也可以使用jQuery。

因此,上面的内容是这样的:

代码语言:javascript
运行
复制
var lbl = $('#Label1');
lbl1.text("js jquery text change");

现在,让我们对文本框执行相同的操作。

我们的asp.net文本框:

代码语言:javascript
运行
复制
<asp:TextBox ID="TextBox1" runat="server" ClientIDMode="Static" ></asp:TextBox>

JavaScript:

代码语言:javascript
运行
复制
var txt = document.getElementById('<%=TextBox1.ClientID%>');
txt.value = "This is js text for text box";

和jQuery一样:

代码语言:javascript
运行
复制
var txt = $('#TextBox1');
txt.val("js jquery text for the text box");

那么,对于一个asp.net标签呢?您可以使用innerText或innerHTML。(或使用jQuery的文本(“此处显示的文本”))

在jQuery中,您可以使用不带()的.value

票数 0
EN

Stack Overflow用户

发布于 2020-11-20 06:33:03

尝试将ClientIDMode="Static“添加到标签中(如果该属性对您可用)。或者,您可以添加ClientID="errLabel“作为替代。实际情况是,asp.net会自动给你的字段一个生成的id,以便在客户端关闭,所以它不会与你的id "errLabel“匹配。

代码语言:javascript
运行
复制
    <asp:Label runat="server" ID="errLabel" ClientIDMode="Static"></asp:Label>

代码语言:javascript
运行
复制
    <asp:Label runat="server" ID="errLabel" ClientID="errLabel"></asp:Label>

https://docs.microsoft.com/en-us/dotnet/api/system.web.ui.control.clientidmode?view=netframework-4.8#System_Web_UI_Control_ClientIDMode

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64920894

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档