jQuery datepicker 在 IE9 中不工作并添加了动态文本区域

Posted

技术标签:

【中文标题】jQuery datepicker 在 IE9 中不工作并添加了动态文本区域【英文标题】:jQuery datepicker not working in IE9 with dynamic textarea added 【发布时间】:2014-08-28 19:52:34 【问题描述】:

我有一个包含多行的 html 表格,其中包含输入类型 =“文本”和文本区域等表单控件。每一个的最后一列是日期字段,属于输入类型,其他字段是文本区域。默认字段和动态添加的行一切正常:我正在使用下面的行将动态行添加到表格中。

$('#DataTable tr:last').after( tr td 对齐=对齐 文本区域行=1 列=50 文本区域 td td 对齐=对齐 输入类型=文本 id=Date1 td tr);

插入新行后添加的日期选择器,如下所示:

$("Date1").datepicker(dateFormat: "dd/mm/yy", showOn: "button", firstDay: 1, showOtherMonths: true, prevText:'') ;

我最近添加了动态行为来增加 textarea 的高度并检查 maxlength(因为 maxlength 在 IE9 中也不起作用)。

将动态行为添加到 textarea 的代码如下:

$("#DataTable textarea").keydown(function(e) 增加行(这个,e); );

IncreaseRows 函数如下:

函数增加行(textAreaObj,e) 而(textAreaObj.scrollHeight

  while(textAreaObj.scrollHeight > this.offsetHeight) 
      textAreaObj.rows++;            textAreaObj.rows++;

      var $this = $(textAreaObj);
      var maxlength = $this.attr('maxlength');
      if (!!maxlength) 
          var text = $this.val();
          if (text.length > maxlength) 
              // truncate excess text (in the case of a paste)
              $this.val(text.substring(0,maxlength));
              e.preventDefault();
          
         

这样,日期选择器停止工作。我可以看到日历,但不能像往常一样选择日期。

有什么想法吗?

最好的问候, MouliPC。

【问题讨论】:

【参考方案1】:

通过 jsfiddle 的以下修改解决了问题。

http://jsfiddle.net/gjqWy/155/#run

问题是由于 IE9 不支持的 rows 属性。 JS方法修改如下:

function increaseRows(textAreaObj, e)  
        textAreaObj.oninput = function() 
            textAreaObj.style.height = "";
            textAreaObj.style.height = Math.min(textAreaObj.scrollHeight, 300) + "px";
        ;

        var $this = $(textAreaObj);
        var maxlength = $this.attr('maxlength');
        if (!!maxlength) 
            var text = $this.val();
            if (text.length > maxlength) 
                // truncate excess text (in the case of a paste)
                $this.val(text.substring(0,maxlength));
                e.preventDefault();
            
        
    

【讨论】:

以上是关于jQuery datepicker 在 IE9 中不工作并添加了动态文本区域的主要内容,如果未能解决你的问题,请参考以下文章

My97datepicker在IE9下采用‘yyyy-MM’格式时会出现11111111

.datepicker('setdate') 问题,在 jQuery 中

jquery 中datepicker 插件 问题

IE9 jquery动画问题,

在 django 中使用 Datepicker(来自 Jquery)

jQuery UI 中的 datepicker( )方法