我有一个超文本标记语言表,多行包含表单控件,如输入类型="文本"和文本区域。每个的最后一列是日期字段,是输入类型,其他字段是文本区域。默认字段和动态添加的行都很好:我正在使用下面的行添加动态行表格。
$('#DataTable tr: last')。之后(tr td对齐=证明文本区域行=1个文本区域=50个文本区域td td对齐=证明输入类型=文本ID=Date1 td tr);
插入新行后添加的日期选择器如下所示:
$("Date1"). datepicker({dateFormat:"dd/mm/yy",showOn:"button",firstDay:1,show其他月份:真,前文本:'
我最近添加了动态行为来增加文本区域高度并检查最大长度(因为最大长度在IE9中也不起作用)。
将动态行为添加到文本区域的代码如下:
$("#DataTable文本区"). keydown(函数(e){增加行(this,e);});
增量函数如下:
函数增加行(text Area aObj, e){while(text Area aObj.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。
通过jsfiddle的以下修改解决了问题。
http://jsfiddle.net/gjqWy/155/#run
该问题是由于IE9中不支持的row属性造成的。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();
}
}
}