为什么弹出窗口加载时我的datepicker onSelect事件会被触发?

时间:2014-04-21 02:52:41

标签: javascript jquery asp.net

我创建了一个在局部视图中加载的日期选择器。部分视图本身加载在弹出对话框中。不确定是否相关但是当弹出对话框时,日期选择器已经打开。似乎onSelect事件默认在datepicker加载时触发。

我在这样的div中有日期选择器:

 <div class ="ui-widget" >
      <label for ="datep">Date: </label><input id="datep" />
  </div>

这是脚本:       $(function(){

        $("#datep").datepicker({ showOn: "both", buttonText: "Select Date", changeMonth: true, showButtonBar: true, changeYear: true, yearRange: "-2:+2", showOtherMonths: true, onSelect: function (date, datepickder) {
            var tcherData = { selectedDate: date, teacherID: teacherData };
            $.ajax({
                type: "GET",
                url: "/Schedule/GetSchedule",
                data: tcherData,
                datatype: "html",
                sucess: function (data) {

                }
            });
        }
     });

为什么弹出窗口加载后onSelect事件会立即触发?我怎样才能防止这种情况发生?感谢您对此提供任何帮助!!

1 个答案:

答案 0 :(得分:1)

问题是当对话框打开时,焦点会在触发datepicker的输入上设置。解决方案是在显示对话框时触发输入上的模糊事件,或者在调用对话框之前可以使用此代码,它将清除自动对焦:

$.ui.dialog.prototype._focusTabbable = function(){};