我有一个HTML表,其中多行包含表单控件,例如input type =" text"和textareas。每个的最后一列是日期字段,输入类型,其他字段是textareas。一切都工作正常,默认字段和动态添加行:我使用下面的行添加动态行表。
$(' #DataTable tr:last')。之后( TR td align = justify textarea rows = 1 cols = 50 textarea的 TD td align = justify input type = text id = Date1 TD TR);
在插入如下所示的新行后添加日期选择器:
$(" Date1")。datepicker({dateFormat:" dd / mm / yy",showOn:" button",firstDay:1,showOtherMonths: true,prevText:'<',nextText:'>'});
我最近添加了动态行为以增加textarea高度并检查maxlength(因为maxlength在IE9中也不起作用)。
将动态行为添加到textarea的代码如下:
$(" #DataTable textarea")。keydown(function(e){ increaseRows(this,e); });
IncreaseRows函数如下:
function increaseRows(textAreaObj,e){ while(textAreaObj.scrollHeight< textAreaObj.offsetHeight){textAreaObj.rows--; }
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(); } } }
有了这个,datepicker就停止了工作。我能够看到日历,但不能一如既往地选择日期。
有什么想法吗?
最诚挚的问候, MouliPC。
答案 0 :(得分:0)
问题通过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();
}
}
}