我有一个div作为textarea,因为div可以根据其中的文本改变它的高度,这里的问题是如果有人复制了一些样式文本(文本和HTML)并粘贴它,样式坚持文本, contenteditable='plaintext-only'
可以解决问题,但它似乎只是一个仅限webkit的功能。
那么有没有办法只在div中允许文本?
答案 0 :(得分:2)
以下是根据您输入的内容增长的文本区域示例:
http://jsfiddle.net/janjarfalk/r3Ekw/
弹性文本区域工作的原因是外部jquery.elastic.source.js位于此处:http://jquery-elastic.googlecode.com/svn/trunk/jquery.elastic.source.js
现在,你已经看过这两个资源,让我们来谈谈它的作用。该脚本有一个“udpate”函数,它基本上只是在这里到达行末时添加空格:// Add an extra white space so new rows are added when you are at the end of a row.
$twin.html(textareaContent+' ');
然后在这里你可以看到各自的功能:
// Updates the width of the twin. (solution for textareas with widths in percent)
function setTwinWidth(){
var curatedWidth = Math.floor(parseInt($textarea.width(),10));
if($twin.width() !== curatedWidth){
$twin.css({'width': curatedWidth + 'px'});
// Update height of textarea
update(true);
}
}
// Sets a given height and overflow state on the textarea
function setHeightAndOverflow(height, overflow){
var curratedHeight = Math.floor(parseInt(height,10));
if($textarea.height() !== curratedHeight){
$textarea.css({'height': curratedHeight + 'px','overflow':overflow});
}
}
这都是弹性功能。希望这会给你一些洞察力并帮助你。