2016-07-27 24 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>