【发布时间】:2014-02-10 12:57:52
【问题描述】:
我正在使用 RegularExpressionValidator 来验证文本框。
现在如果文本框有效,我需要在标签控件上显示“页面有效”消息。
我是在后面的代码中执行此操作,还是在 javascript 本身中声明标签?
在javascript中我尝试过使用:
document.getElementById("LabelId").innerText="Your Text Here"
但它显示 Microsoft JScript 运行时错误:
无法设置属性“innerText”的值:对象为空或 未定义”。
我也尝试过使用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.我是新来的,这是我的第一个问题。如有错误请忽略。
【问题讨论】:
-
尝试在文档加载或准备就绪时添加代码。当在 dom 中找不到元素时,会发生 Object undefined 或 null。参考stackoverflow.com/questions/4488714/…
-
尝试使用标签的客户端 ID.... 像
"<%=LabelId.clientID%>"或使用检查元素 -
你能检查元素并确保你有正确的 id 吗?
-
你在使用母版页吗??
-
@HarshadaChavan 谢谢。我已经引用了您发布的链接,并且已经实现了相同的链接。没有任何错误,但是标签的值没有显示出来。
标签: javascript asp.net