jquery自动增长文本区域与初始文本

jquery自动增长文本区域与初始文本,jquery,Jquery,有一个非常简单的jquery插件:autotextarea。我想教它一个小技巧:首先调整大小以补偿表单中提供的文本,而不是等待第一次击键。能不能请一些善良的灵魂告诉我,除了onkeyup之外,还要添加什么样的处理程序 这是你的电话号码 仅仅在初始化函数中添加一个grow(this)调用是不起作用的——显然,在调用它的时候,布局不完整,有效宽度很小,所以它们变得太高了。这是我修改过的版本:唯一的变化是调用grow //Public Method jQuery.fn.autoGrow = funct

有一个非常简单的jquery插件:autotextarea。我想教它一个小技巧:首先调整大小以补偿表单中提供的文本,而不是等待第一次击键。能不能请一些善良的灵魂告诉我,除了onkeyup之外,还要添加什么样的处理程序

这是你的电话号码

仅仅在初始化函数中添加一个grow(this)调用是不起作用的——显然,在调用它的时候,布局不完整,有效宽度很小,所以它们变得太高了。这是我修改过的版本:唯一的变化是调用
grow

//Public Method
jQuery.fn.autoGrow = function(){
    return this.each(function(){
        setDefaultValues(this);
        grow(this);
        bindEvents(this);
    });
};
编辑

在document.ready()上运行此操作不起作用,因为尚未计算textarea的cols属性。然而,我想到了一些东西,也许你可以帮我清理一下。我没有注意
cols
,而是使用$(txtArea).width(),然后将其除以包含典型字符的隐藏div的宽度。除了需要在每一页上放置隐藏的div之外,一切都很好。有没有关于制造或取消那个部门的建议

典型文本区域HTML:

<textarea name="text[0]">歐洲 聯盟 研究 論壇 研討會 議程表 主題 : 歐盟 新憲 的 困境 與 挑戰 日期 : 九十四 年 九月 二日 ( 星期五 ) 09 : 00~ 13 : 30 地點 : 台北市 福華 大 飯店 四 樓 CR 403 ( 台北市 仁愛路 三 段 160 號 ) 主辦 單位 : 歐洲 聯盟 研究 論壇 ( European Union Research Forum , EURF ) 國立 政治 大學 國際 關係 研究 中心 起迄 時間 流程09 : 00 -09 : 10 報 到 09 :10 -09 : 20 開場 林碧炤 ( 政治 大學 副校 長 ) 9 : 20 - 10 : 20 第一 場 : 歐盟 公投 後 的 衝突 主持人 尤清 ( 立法委員 ) 引言人 1. </textarea>

我不确定这个插件到底是如何工作的,但这可能是一个权宜之计

将textarea设置为自动增长后,向textarea动态添加一个字符,以便触发插件,然后删除该字符。或者您可能需要模拟按键,无论是哪一种


如果您需要代码示例,请告诉我。

您可以在布局完成后运行此命令,如下所示:

$(document).ready(function() {
   // Code to run once document is ready
});
或者你可以使用速记符号,它做同样的事情:

$(function(){
   // Code to run once document is ready
});

只要把它包在这两行里就行了。

我想我发现了你的问题。。。您需要在文本区域中定义行和列:

<textarea rows="5" cols="40" name="text[0]">歐洲 聯盟 研究 論壇 研討會 議程表 主題 : 歐盟 新憲 的 困境 與 挑戰 日期 : 九十四 年 九月 二日 ( 星期五 ) 09 : 00~ 13 : 30 地點 : 台北市 福華 大 飯店 四 樓 CR 403 ( 台北市 仁愛路 三 段 160 號 ) 主辦 單位 : 歐洲 聯盟 研究 論壇 ( European Union Research Forum , EURF ) 國立 政治 大學 國際 關係 研究 中心 起迄 時間 流程09 : 00 -09 : 10 報 到 09 :10 -09 : 20 開場 林碧炤 ( 政治 大學 副校 長 ) 9 : 20 - 10 : 20 第一 場 : 歐盟 公投 後 的 衝突 主持人 尤清 ( 立法委員 ) 引言人 1. </textarea>
并确保文本区域宽度也为100%。。。基本CSS:

textarea {
 width: 100%;
 height: auto;
 overflow: hidden;
 font-family: Arial, simsun;
 font-size: 16px;
}

如果您发现任何问题,请向我问好。

您能提供您正在使用的插件的链接吗?您是否尝试使用
$(window).load(function(){…})
而不是document.ready?@fud是的。现在它似乎完全起作用了,但可能是我打错了。我担心如果我在“准备”时间做这两件事中的任何一件,我会遇到这样的问题,即有效宽度在那一点上很小。我似乎需要知道的是,如何将某些内容的执行推迟到布局完成并确定宽度之后。您是通过JavaScript将文本插入文本区域,还是在实际的HTML中?实际的HTML。这是一个JSP页面,文本就放在那里。另外,为什么在页面完全加载之前,宽度很小?我没有指定“cols”。我用css控制宽度。一旦页面启动并运行,当插件读取cols时,它会得到一个有效的数字,但在ready()时间显然不是。不,这是我已经在做的,它不起作用。显然,文本区域的'cols'属性非常懒惰。对不起,我不能这么做。这是要求文本区域占据可用宽度,而不是固定大小。我已经更新了我的答案。。。我希望它能起作用!哈哈,到目前为止,我已经在Firefox、IE8和Chrome上测试过了。
$(document).ready(function(){
  $("textarea").autoGrow(true);
});
textarea {
 width: 100%;
 height: auto;
 overflow: hidden;
 font-family: Arial, simsun;
 font-size: 16px;
}