У меня есть маска даты JQuery, но когда я запускаю страницу, она выдает ошибку «Ошибка выполнения Microsoft JScript: объект не поддерживает это свойство или метод».
Теперь элемент управления, для которого предназначен этот конкретный JQuery, динамически добавляется к элементу управления повторителем. Благодаря этому я посмотрел на идентификаторы элемента управления, где он ломался и останавливался в Visual Studio и что показывается на странице aspx. Идентификаторы идентичны, за исключением «#», которое JQuery имеет в начале, которого нет на странице.
В моем коде JQuery у меня есть:
JQuery(function ($) {
$('#<%=date.ClientID %>').mask("99/99/9999");
});
Можно ли указывать JQuery не включать "#" при поиске элемента управления? Я использовал UniqueID, но это меняет любое подчеркивание на «$», что не совпадает с тем, что есть на странице. Моя единственная проблема - знак "#" в начале идентификатора. Я даже добавил окно предупреждения, чтобы проверить, что текстовое поле было там, и оно вернулось как ноль. Я пытался даже добавить атрибут 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>
Может кто-нибудь помочь?