Jquery datepicker – 仅每两次点击事件触发

我有一个带有jqueryui datepicker控件的页面。 在每天的选择中,我使用ajax发布到web方法来执行一些服务器端数据填充以填充日历控件下方的下拉框。

我已经将这个代码用于两个页面,首先是完美的,但我遇到了这个问题。 我第一次选择日期时,事件触发正常,第二次没有任何反应,然后下一次点击再次正常工作。 因此,事件仅在每次第二次点击时触发,无论是相同的日期还是不同的日期。 我添加了一个输入控件来捕获日期选择,它可以在每个选择上正常工作。

我现在的错误是,如果我在我的select jquery函数中添加一个警报,它每次都会触发,取出它然后我再次遇到这个问题。

谢谢

标记:

     $(function() { $('#datepicker').datepicker({ onSelect: function(dateStr, inst) { document.getElementById('').value = dateStr; var hubid = 2; $('#').empty().append('Loading...'); $.ajax ({ type: "POST", url: "UserCP.aspx/PopulateAvailableTimeSlots", data: ("{date:'" + dateStr + "', hubid:'" + hubid + "'}"), contentType: "application/json; charset=utf-8", dataType: "json", success: OnTimeSlotsPopulated }); $("#datepicker_value").val(dateStr); } }); }); function OnTimeSlotsPopulated(response) { PopulateControl(response.d, $("#")); } function PopulateControl(list, control) { if (list.length > 0) { control.removeAttr("disabled"); control.empty().append('--Select Time Slot--'); $.each(list, function() { control.append($("").val(this['Value']).html(this['Text'])); }); } else { $("#").attr("disabled", "disabled"); control.empty().append('--No Slots Available--'); } }    

服务器端:

 public partial class calendartest : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } [WebMethod] public static ArrayList PopulateAvailableTimeSlots(string date, string hubid) { ArrayList list = new ArrayList(); //Do stuff here return list; } } 

HTML输出:

                Test   
$(function() { $('#datepicker').datepicker({ onSelect: function(dateStr, inst) { document.getElementById('ctl00_MainContent_hSelectedDate').value = dateStr; var hubid = 2; $('#ctl00_MainContent_ddlAvailableTimes').empty().append('Loading...'); $.ajax ({ type: "POST", url: "UserCP.aspx/PopulateAvailableTimeSlots", data: ("{date:'" + dateStr + "', hubid:'" + hubid + "'}"), contentType: "application/json; charset=utf-8", dataType: "json", success: OnTimeSlotsPopulated }); $("#datepicker_value").val(dateStr); } }); }); function OnTimeSlotsPopulated(response) { PopulateControl(response.d, $("#ctl00_MainContent_ddlAvailableTimes")); } function PopulateControl(list, control) { if (list.length > 0) { control.removeAttr("disabled"); control.empty().append('--Select Time Slot--'); $.each(list, function() { control.append($("").val(this['Value']).html(this['Text'])); }); } else { $("#ctl00_MainContent_ddlAvailableTimes").attr("disabled", "disabled"); control.empty().append('--No Slots Available--'); } }
--Select Time Slot--