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 中