使用jquery调整文本区域的高度
resize height of textarea with jquery
我试图复制类似fb的评论框,在那里,他们使用扩展文本区域使其优雅在文本填充时调整大小
我的观点看起来像:
<div class='expandingArea'>
<pre><span></span></pre>
<textarea id="comment_body" name="comment[body]" placeholder="In my opinion...">
</textarea>
</div>
<input class="comment_submit" name="commit" type="submit" value="Create Comment" />
我的jquery是:
$( document ).ready(function() {
$('div.expandingArea').each(function() {
var area = $('textarea', $(this));
var span = $('span', $(this));
area.bind('input', function() {
span.text(area.val());
$(".comment_submit").css({"margin": "0.25em 0"});
$(".expandingArea.active textarea").css({"padding": "5px", "height": "95%"});
});
span.text(area.val());
$(this).addClass('active');
});
});
当用户填写数据时,文本区域的高度会增加,一切都很好。然后,为了提交,他点击submit
按钮,该按钮进行ajax调用,输入的数据存储在数据库中,我用重置文本区域的内容
$('textarea').val('');
但我需要将文本区域的高度设置回其原始高度(当用户输入文本时,其高度会随着文本填充而增加)。我不能使用类似的东西
$('textarea').height(10);
因为这将把height = 10px
添加到文本区域的元素样式中,然后当用户在文本区域中输入数据时,我调整文本区域的大小将不起作用。有人知道我该如何取消调整文本区域的大小吗?
此外,如果用户在提交后在文本区域中键入内容,则文本区域会自行调整为正常大小。我想这会触发与文本区域绑定的input
。所以伪造用户输入之类的事情也可以,但我也不知道该怎么做。
绑定对input
事件执行大小调整的函数。当您清空文本区域时,它会更新值,但事件尚未触发。强制事件的一种方法是:
$('textarea').val('').trigger('input');
示例:jsfiddle
try:
$( document ).ready(function() {
$('div.expandingArea').each(function() {
var area = $('textarea', $(this));
var span = $('span', $(this));
area.bind('input', function() {
span.text(area.val());
area.attr('rows', 10);
});
span.text(area.val());
$(this).addClass('active');
});
$('.comment_submit').click(function() {
$('#comment_body').attr('rows', 2).val('');
});
});
JSFiddle:http://jsfiddle.net/ronqt8mc/
$("#comment_body").css("height", "50px"); // 50px - your default size.
感谢Adriano Godoy
相关文章:
- jquery插件或javascript方法自动调整文本输入(而非文本区域)(固定宽度)可变高度的大小
- 使用jquery调整文本区域的高度
- 如何确定素数面的InputText区域的高度
- 始终具有窗口高度的文本区域
- 如何增加highchart.js图表上x轴标签区域的高度
- text区域高度请求滚动高度流问题
- 在 JavaScript 中重置文本区域高度
- 查找文本区域的可见高度
- 动态文本区域高度
- 钛应用器动态文本区域高度增加
- 当 #content 区域长于窗口高度(本机或 Vue.js)时收听
- 文本区域只读自动高度(用所选日期填充)
- 通过自动调整内容高度来防止文本区域 ENTER 行为
- 获取用作边框区域的 ExtJS 面板的高度
- 文本区域的高度在值增加时增加,但在值减小时不会降低
- 当键入超过最大宽度时,动态扩展文本区域的高度
- 零高度文本区域不是零像素高
- 获取页面高度的未滚动区域
- 无法调整文本区域高度的大小
- 移动可查看区域的高度(地址栏和导航栏之间)