【问题标题】:Using Datepicker in Textbox using JQuery使用 JQuery 在文本框中使用 Datepicker
【发布时间】:2026-01-08 05:35:01
【问题描述】:

在这里,我正在尝试创建一个带有文本框的页面,我想在其中显示 CalendarExtender(如在 AJAXToolkit 中),但现在我试图通过使用 JQuery 来获取它,问题是,我不能当我单击文本框时,使日历 UI 弹出,我的上 aspx 页面如下所示:

<link href="../Support/StyleSheet/PageStyle.css" rel="stylesheet" type="text/css" />

<script src="http://code.jquery.com/jquery-1.9.1.js" type="text/javascript"></script>

<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js" type="text/javascript"></script>

<script type="text/javascript">
    $(function () {
        $("#TbOutboundOn").datepicker({
    });
</script>

我尝试使用的文本框是:

  <tr>
                    <td align="left" width="120px" height="25px">
                        <asp:CheckBox ID="CbOutboundOn" Text=" Outbound On" runat="server" />
                    </td>
                    <td align="center" class="style1">
                        <asp:Label ID="Label1" runat="server" Text=":"></asp:Label>
                    </td>
                    <td align="left" width="200px">
                        <asp:TextBox ID="TbOutboundOn" runat="server" Width="194px" placeholder="dd/mm/yyyy"></asp:TextBox>
                    </td>
                    <td width="645px">
                    </td>
                </tr>

我认为它足够好,但不是,当我单击“TbOutboundOn”中的文本框时无法显示日历,一位朋友建议样式表是问题,但我不太明白,谁能帮我解决我的问题?顺便说一句,我使用http://jqueryui.com/datepicker/#default 作为我的参考。

我已经尝试复制 jqueryui 的 datepicker 站点引用的所有样式表,并将其与我自己的样式表结合起来,但它仍然无法正常工作。我也尝试只使用 jqueryui datepicker 中提供的样式表,但仍然没有运气。

感谢您的帮助。

【问题讨论】:

标签: jquery asp.net vb.net jquery-ui visual-studio-2008


【解决方案1】:
$(document).ready(function () {

$('#TbOutboundOn').datepicker();

//or

$('#TbOutboundOn').datepicker({ dateFormat: "dd-M-yy" });

});

你可以在这里找到其他参数来修改你的日期选择器:http://api.jqueryui.com/datepicker/

【讨论】:

  • 对不起@vond ritz 先生,我仍然无法显示日期选择器,无论是否带有参数
  • 还是没有运气先生,也许它与样式表/css有关?
  • 你能在firebug中调试它吗?并告诉我它会抛出什么异常。
  • 它运行良好,没有任何奇怪的地方,当我单击文本框时它不会显示日期选择器 UI
  • 如此奇怪的行为......好吧,让我再想想。
【解决方案2】:

你的 id 被破坏了。使用 css 类选择器。看看我是如何帮助另一个用户 here 的,您可以使用负责更新面板的演示。

<script type="text/javascript">
  $(function () {
$(".clDate").datepicker(); 
         }   
</script>


  <asp:TextBox ID="TbOutboundOn" runat="server" CssClass="clDate" </asp:TextBox>

查看演示here

网站演示版here

【讨论】:

  • css 选择器是什么意思?你能用我的代码做一个例子吗?对不起,我是 jquery 的新手
  • 您是否按照我给出的答案中的超链接进行操作。下载演示文件。您是否使用更新面板。哦,我的意思是类选择器。$(".clDate") 是一个类选择器,它将自身附加到带有名为 clDate 的 css 类的文本框。
  • 您是否尝试过使用上述@AbideMasaraure 建议的类选择器?或将您的 $("#TbOutboundOn").datepicker() 更改为 $("#&lt;%= TbOutboundOn.ClientID%&gt;").datepicker()
  • @AbideMasaraure 我无法打开 WebApplication 3 的解决方案,我目前没有使用更新面板,但我打算这样做。
  • @ajakblackgoat 我尝试按照你告诉我的那样更改脚本,但仍然无法正常工作:(
【解决方案3】:

看到你也必须为日历使用 css 文件,你错过了日历的默认关闭();

<link href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css"
 rel="stylesheet" type="text/css" />
<script src="http://code.jquery.com/jquery-1.9.1.js" type="text/javascript">
</script>
<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js" type="text/javascript">
</script>
<script type="text/javascript">
  $(function () {
      $("#TbOutboundOn").datepicker();  //<-- missing default closing this way.
  });
</script>

【讨论】:

  • 但是我也有一个样式表,我已经尝试过将两者混合但它仍然不起作用:(
【解决方案4】:

更新以下代码: 你的代码:

<script type="text/javascript">
    $(function () {
        $("#TbOutboundOn").datepicker({
    });
</script>

使用以下更新:

<script type="text/javascript">
    $("#TbOutboundOn").datepicker();    
</script>

Ajax 响应和 Date piker 代码:

<tr>
                    <td align="left" width="120px" height="25px">
                        <asp:CheckBox ID="CbOutboundOn" Text=" Outbound On" runat="server" />
                    </td>
                    <td align="center" class="style1">
                        <asp:Label ID="Label1" runat="server" Text=":"></asp:Label>
                    </td>
                    <td align="left" width="200px">
                        <asp:TextBox ID="TbOutboundOn" runat="server" Width="194px" placeholder="dd/mm/yyyy"></asp:TextBox>
                    </td>
                    <td width="645px">
                    </td>
                </tr>
<script type="text/javascript">
    $("#TbOutboundOn").datepicker();    
</script>

【讨论】:

  • 您的 html 是否来自 Ajax 请求和您在页面标题部分添加的代码?如果是,请在下面的 ajax 响应页面中添加代码,它将解决您的问题。如果它有效,请标记为已接受。
  • 此外,您应该添加样式表,如您在参考中看到的,日历对象jqueryui.com/datepicker/#default code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" rel="stylesheet" type="text/css" />
  • 删除浏览器的cookies和缓存。
  • 删除了 cookie 和缓存,仍然没有运气:(
  • 写下你的进程如何运行的步骤,可能我能解决。