2016-07-27 26 views
1

我想在我的javascript中引用控件的ID。该控件位于模板字段中。jQuery参考模板字段中的控件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:$(“#ReqDate2.ClientID”)

我应该如何选择它呢?

回答

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就没有必要与添加任何其他选择

+0

我已经试过这一点。它不起作用 – Junxian

+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

'CssClass =“日历”'而不是'class =“日历”'。这是asp.net控件。 –

0

当ASP.net呈现变化的ID,所以如果你查看输出的HTML它最有可能不会是ReqDate2

为了使JavaScript的引用正确的ID,使用

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

由于这是一个itemTemplate我建议不要使用这种方法,并通过拉克希米prakasan使用一个类的方法

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>