从 jquery 函数中的内容占位符检索文本框的 ID

retrieve id of textbox from content place holder in jquery function

我正在为我的网页使用 JQUERY UI。我正在尝试使用日期选择器控件。问题是 jquery 函数没有获取文本框 ID。当我将内容占位符 ID 与文本框 ID 连接时,它正在工作。

<asp:Content ID="PassportContent" ContentPlaceHolderID="CPH001" runat="server">
<div class="form-group">
    <label>Date Of Birth</label>
    <asp:TextBox ID="datepicker" runat="server" CssClass="txt-control"></asp:TextBox>
</div>
</asp:Content>

实际jquery代码

<script src="../jquery/external/jquery/jquery.js"></script>
<script src="../jquery/jquery-ui.min.js"></script> 
<script>
    $(function () {
        $("#datepicker").datepicker();
    });
</script>

工作jquery代码

<script>
    $(function () {
        var temp = document.getElementById('<%= datepicker.ClientID %>').value;
        alert(temp);
        $("#CPH001_datepicker").datepicker();
    });
</script>

当我在论坛中搜索大多数建议使用 document.getElementById 的解决方案时,我尝试使用 >>

获取 ID

document.getElementById('<%= datepicker.ClientID %>').value;但警告框显示 NULL。

  1. 如何解决这个问题?
  2. 当我将 js 代码保存在单独的文件中时,如何解决这个问题?

按照提示,我使用了$("[id$=datepicker]").datepicker();。它有效,我正在获取日期选择器。但我无法更改日期格式并限制日期范围。请建议。

<script>
    $(function () {
        $("[id$=datepicker]").datepicker();        

        $("[id$=datepicker]").datepicker({ dateFormat: 'ISO 8601 - yy-mm-dd' }); // not working
    });
    // not working
    $("#format").change(function () { $("[id$=datepicker]").datepicker('ISO 8601 - yy-mm-dd', "dateFormat", $(this).val()); });
</script>

尝试输入字段,您的代码是正确的:

<input type="text" id="datepicker" runat="server" CssClass="txt-control" />

我不确定 jquery 是否可以处理 "asp:TextBox" 标签或是否会被替换?

当内容页面呈现时 Textbox id 改变。像这样使用 Textbox id

<script>
$(function () {
    $("[id$=datepicker]").datepicker();
});
</script>

How to use JQuery with Master Pages?