我正在使用 RegularExpressionValidator 来验证文本框。
现在如果文本框有效,我需要在标签控件上显示“页面有效”消息。
我是在代码隐藏中做还是在 javascript 本身中声明标签?
在 javascript 中我尝试使用 :
document.getElementById("LabelId").innerText="Your Text Here"
但它显示Microsoft JScript 运行时错误:
Unable to set value of the property 'innerText': object is null or undefined".
我也尝试过使用 innerHTML,但它显示了类似的错误。那么为标签赋值的正确方法是什么? 编辑:下面是我的 aspx 编码:
<%@ Page Title="" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true"
CodeBehind="RegularExpressionValidator.aspx.cs" Inherits="ValidationTask.WebForm3" %>
<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<asp:Label ID="LabelText" runat="server" Text="Label"></asp:Label><br />
<script type="text/javascript" language="javascript">
function ValidatePage() {
debugger;
if (Page_IsValid) {
document.getElementById('<%= LabelText.ClientID %>').innerHTML = 'Page Is Valid';
}
else {
document.getElementById('<%= LabelText.ClientID %>').innerHTML = 'Page is Invalid';
}
}
</script>
<asp:Label ID="LabelZip" runat="server" Text="Enter Zip Code"></asp:Label>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox><br />
<asp:Button ID="Button1" runat="server" Text="Enter" OnClientClick="return ValidatePage()" />
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" ControlToValidate="TextBox1"
ValidationExpression="\d{5}" runat="server" ErrorMessage="The zip code must be 5 numeric
digits"></asp:RegularExpressionValidator>
</asp:Content>
提前致谢。
P.S. 我是新来的,这是我的第一个问题。如果我有任何错误,请忽略。
最佳答案
document.getElementById("LabelId").innerText="Your Text Here"
听起来你的元素在页面上找不到。仔细检查 ID 以确保它存在。最简单的方法是只查看 html 以确保您使用的是正确的 ID。将 asp.Net 标签定义为服务器端控件时要记住的一件事是,客户端 ID 是指定 ID 和标签祖先 ID 的串联。这意味着您不能在 JavaScript 中直接引用服务器端 ID,因为它只是完整客户端 ID 的一部分。您可能必须使用通配符指定它。
如果您需要使用通配符,在 Jquery 中可能更容易做到
$('[id*=LabelId]')
这意味着您必须添加对 JQuery 的脚本引用。
关于javascript - 如何在 javascript 中将文本分配给标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21249542/