【问题标题】:JQuery UI Datepicker issue with Prev and Next in IE8IE8 中 Prev 和 Next 的 JQuery UI Datepicker 问题
【发布时间】:2011-01-27 03:07:42
【问题描述】:

http://www.scottsdalecvb.com 上,我在多个日期文本字段上使用了 jQuery UI 的 .datepicker()。奇怪的是,今天我注意到 Travel Tools 框中的日期字段(页面右侧带有 Travelocity 徽标)在 IE8 中停止正常运行。他们将焦点打开日历,并允许您单击日期以填写该框,但是,上一个和下一个按钮不会滚动日历。在 IE 中不显示错误,并且在 Firefox 和 Chrome 中运行良好。

我确实使用了几个日期字段。事实上,如果您单击顶部栏中的事件,下拉菜单会显示另外两个使用 datepicker() 并且工作正常的文本框。

初始化日期字段的代码位于 /includes/scripts/widget.wct.js 中,内容如下:

    var dateBoxes = $("input[class*=Date]", "#travelocity");
    var opt = { minDate: new Date().setDate(dateDepart.getDate() + 1), maxDate: new Date().setDate(dateDepart.getDate() + 329), showOn: "both", buttonImageOnly: true, buttonText: "Choose date", buttonImage: "/includes/images/wct/calendar.gif"};  
      dateBoxes.each(function() {
       $(this).datepicker(opt)
      });

任何帮助将不胜感激。

【问题讨论】:

  • 我找到了答案,以防其他人遇到同样的问题。至少部分答案。 minDate 和 MaxDate 使插件将 _canAdjustMonth 值设置为 false(我认为适当),禁用 prev 和 next。为什么这只发生在 IE 中,我不确定。但是,删除这两个选项修复了它。

标签: javascript jquery jquery-ui


【解决方案1】:

我不知道它是否还有帮助,但这是我发现的: 在 IE 上,“prevText”参数不能以字符 '

  • prevText: '<-Préc' -> 好的
  • prevText: '< Préc' -> 好的
  • prevText: '<Préc' -> 不行

我想 IE 认为它是标签的一部分 <....>

【讨论】:

  • 它对我有用。刚刚发生在我们正在处理的项目中,看到 IE8 不是跨度,而是在跨度之前添加了前一个文本,就像“”一样。谢谢!
【解决方案2】:

我的问题是我为日期选择器提供了无效的 minDate / maxDate 值。我以为我在传递日期对象,但在 IE 中,日期对象不接受格式为 yyyy-mm-dd 的日期字符串。所以我的 minDate / maxDate 值不是日期对象,但实际上是 NaN。

换句话说,new Date('2010-01-01') = NaN。您需要将其拆分为年、月和日,然后将日期对象初始化为new Date(year, month-1, day)。例如:

var dateArray = new String('2010-01-01').split('-');
var dateObject = new Date(dateArray[0], dateArray[1]-1, dateArray[2]);

感谢你们为我指明了正确的方向。有趣的是副作用消失了 prev/nav 月份按钮。

【讨论】:

    【解决方案3】:

    我在 IE8 中遇到了“prev”和“next”同样的问题。较新的版本和浏览器运行良好。 我有自定义 datepicker css(不像示例 jquery-ui css)。
    添加

    width: 60%;
    margin: auto;
    

    .ui-datepicker-title 
    

    类解决了问题。

    【讨论】:

      【解决方案4】:

      我还遇到了下个月和上个月按钮不起作用的问题。当我从 jQuery UI 站点添加示例 CSS 时,它再次起作用。

      <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" />
      

      【讨论】:

        【解决方案5】:

        //对于 IE8 ,如果你用新的 Date() 值初始化 datepicker(如 minDate),在直接使用它之前添加这个检查。

        var mDate = new Date($("#TargetDate").val());
        if(isNaN(mDate)) {
              mDate = new Date($("#TargetDate").val().replace(/-/g, '/'));
        }
        

        参考:Javascript JSON Date parse in IE7/IE8 returns NaN

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-04-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多