JQuery Calendar控件仅在单击文本框时出现一次

时间:2013-04-05 07:27:57

标签: jquery asp.net

我有一个JQuery日历,它在我的网页上完美运行但只有一次。选择日期后,我尝试单击文本框以更改日期未显示的日期。

这是我的代码 `

    $(document).ready(function () {           
        $("#<%= txtDatePicker.ClientID %>").datepicker();           
    });

`

<asp:TextBox ID="txtDatePicker" runat="server" OnTextChanged="txtDatePicker_TextChanged" AutoPostBack="True" ></asp:TextBox>

4 个答案:

答案 0 :(得分:2)

好吧,我明白了。 这是因为AutoPostBack。使用AutoPostBack时,是部分页面加载,因此datepicker不起作用。我将datepicker绑定添加到pageLoad函数,现在它完美地工作.....

感谢你们的所有答案

 function pageLoad() {
        $("#<%= txtDatePicker.ClientID %>").datepicker();
    }

答案 1 :(得分:1)

您显示datepicker的声明仅在document.ready上执行一次。您可以绑定focus事件,以便在TextBox获得焦点时将其打开

$(document).ready(function () {           
    $("#<%= txtDatePicker.ClientID %>").datepicker();           


    $("#<%= txtDatePicker.ClientID %>").focus(function () {           
         $(this).datepicker();           
    });
});

答案 2 :(得分:1)

尝试更改为:

$(document).ready(function () {
   $("#<%= txtDatePicker.ClientID %>").on('click focus',function(){
      $(this).datepicker();
   }).datepicker();       
});

查看您的代码中发生的事情,您只是在页面加载(doc ready)事件上初始化了datepicker,因此如果您想更改日期,则必须绑定focus的事件或click,虽然两者都可以正常使用。

答案 3 :(得分:0)

<input type="text" id="date" placeholder="Choose a date..." value="" />

$(function () {
    $("#date").datepicker({
        dateFormat: "DD, d M yy",
        altField: selectedDay,
        altFormat: "DD",

    });