【发布时间】:2010-12-04 14:16:49
【问题描述】:
我有一个 JQuery 日期掩码,但是当我运行该页面时,它会抛出一个错误“Microsoft JScript 运行时错误:对象不支持此属性或方法”。
现在,这个特定的 JQuery 打算工作的控件被动态添加到转发器控件中。通过这个,我查看了控件的 ID,它在 Visual Studio 中中断和停止的位置以及 aspx 页面上显示的内容。除了 JQuery 开头的“#”之外,ID 是相同的,它不在页面上。
在我的 JQuery 代码中:
JQuery(function ($) {
$('#<%=date.ClientID %>').mask("99/99/9999");
});
有没有告诉 JQuery 在查找控件时不要包含“#”?我使用了 UniqueID,但这会将任何下划线更改为“$”,这与页面上的内容不同。我唯一的问题是 ID 开头的“#”号。我什至添加了一个警告框来检查文本框是否存在并且它返回为空。我什至尝试向文本框添加 CssClass 属性,但这也发生了同样的错误。
请注意,具有文本框的自定义用户控件是以编程方式添加到转发器的。
代码如下:
带有中继器的用户控制
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="Step4.ascx.cs"
Inherits="Prototype.Step4" %>
<div style="height: 800px; margin-top: 20px; overflow-x: hidden; overflow-y: scroll">
<p>
<b>Edit Stage</b></p>
<asp:Repeater ID="Edit" runat="server">
<HeaderTemplate>
<table>
</HeaderTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
<ItemTemplate>
<tr>
<td>
<asp:Label ID="RowLabel" runat="server" Text="Label" ></asp:Label>
</td>
<td>
<asp:PlaceHolder ID="ControlPlaceHolder" runat="server"></asp:PlaceHolder>
</td>
</tr>
</ItemTemplate>
</asp:Repeater>
</div>
动态添加到上面控件的遮罩控件
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="MaskControl.ascx.cs" Inherits="Prototype.CommonControls.MaskControl" %>
<asp:TextBox ID="date" runat="server" Width="136px" CssClass="dateMask"></asp:TextBox>
<script src="../../Scripts/jquery-1.4.2.js" type="text/javascript"></script>
<script src="../../Scripts/jquery.maskedinput.js" type="text/javascript"></script>
<script type="text/javascript">
// jQuery(function ($) {
// $('.dateMask').mask("99/99/9999");
// });
alert(document.getElementById("MaskedDateBox"));
</script>
谁能帮忙?
【问题讨论】:
-
您是否尝试在 CDATA 之间封装您的脚本?
标签: c# asp.net jquery jquery-plugins