jQuery引用模板字段中的控件ID

时间:2016-07-27 04:38:01

标签: javascript c# jquery asp.net

我想在我的javascript中引用控件的ID。控件位于模板字段中。

以下是我所做的:

<ItemTemplate>
  <script type="text/javascript">
    $(document).ready(function () {
               $('#ReqDate2.ClientID').dynDateTime({
                       showsTime: true,
                       ifFormat: "%d/%m/%Y %H:%M",
                       daFormat: "%l;%M %p, %e %m,  %Y",
                       align: "BR",
                       dlectric: false,
                       singleClick: false,
                       displayArea: ".siblings('.dtcDisplayArea')",
                       button: ".next()"
                  });
            });
 </script>                    
<asp:TextBox ID="ReqDate2" runat="server" ReadOnly="true" Style="width: 128px"></asp:TextBox>
     <img src="../Images/calender.png" />
</ItemTemplate>

当我点击日历图片时,此代码应该会弹出日历javascript,但不会发生。

我认为是因为我没有正确选择文本框的ID:$(&#39;#ReqDate2.ClientID&#39;)

我该如何选择呢?

4 个答案:

答案 0 :(得分:1)

  

而不是访问textbox id使用其class name

试试这个:它对我来说很好。

$(document).ready(function () {
    $(".Calender").dynDateTime({
        showsTime: true,
        ifFormat: "%Y/%m/%d %H:%M",
        daFormat: "%l;%M %p, %e %m,  %Y",
        align: "BR",
        electric: false,
        singleClick: false,
        displayArea: ".siblings('.dtcDisplayArea')",
        button: ".next()"
    });
});

您也应该更改itemtemplate。

<ItemTemplate>
   <asp:TextBox ID="txtDOB" runat="server" ReadOnly="true" CssClass = "Calender" />
   <img src="calender.png" />
</ItemTemplate>

答案 1 :(得分:0)

试试这个:

$('#ReqDate2').dynDateTime({
    showsTime: true,
    ifFormat: "%d/%m/%Y %H:%M",
    daFormat: "%l;%M %p, %e %m,  %Y",
    align: "BR",
    electric: false,
    singleClick: false,
    displayArea: ".siblings('.dtcDisplayArea')",
    button: ".next()"
});

当您拥有唯一ID时,无需添加任何其他选择器。

答案 2 :(得分:0)

当ASP.net呈现更改ID时,如果您查看输出的HTML,则很可能不会ReqDate2

要使JavaScript引用正确的ID,请使用

 $('#<%= ReqDate2.ClientID %>').dynDateTime({

由于这是itemTemplate,我建议不要使用这种方法并使用lakshmi prakasan的课堂方法

答案 3 :(得分:0)

使用类很好,但是因为我也有验证,现在它不起作用。我拿出验证,它工作正常。以下验证已被评论。

 <asp:TemplateField HeaderText="Drop Off - Date &amp; Time"> 
                     <EditItemTemplate>
                        <asp:TextBox ID="dropoffdateandtime" runat="server" class = "Calender"
                            Text="<%# Bind('dropoffdateandtime') %>" />
                         **<%--<asp:RequiredFieldValidator ID="RequiredFieldValidator4" runat="server" ControlToValidate="dropoffdateandtime" ErrorMessage="date &amp; time is required" ForeColor="#999999"></asp:RequiredFieldValidator>--%>**
                    </EditItemTemplate>
                     <HeaderStyle Wrap="False" />
                     <ItemStyle Wrap="False" />
                </asp:TemplateField>

使用javascript

<script type="text/javascript">
  $(document).ready(function () {
      $(".Calender").dynDateTime({
          showsTime: true,
          ifFormat: "%Y/%m/%d %H:%M",
          daFormat: "%l;%M %p, %e %m,  %Y",
          align: "BR",
          electric: false,
          singleClick: false,
          displayArea: ".siblings('.dtcDisplayArea')",
          button: ".next()"
      });
  });
</script>