我正在使用下面的简单代码用< textarea>替换文本框(< input type = text />)用户输入一定数量的字符后的元素.在下面的示例中,这发生在第10个字符之后.该代码有效,但< textarea>的内容除外.省略用户键入的第10个字符.例如,如果在文本框中键入“testing 1234”,则textarea将省略“4”.有任何想法吗?谢谢. –Jake
$('.info').keypress(function() {
var count = $(this).val().length;
if (count > 10)
{
var contents = $(this).val();
$(this).after('<textarea></textarea>').next().val(contents).end().remove()
}
})
更新:
我尝试了许多人分享的建议:使用keyup事件.它有效,但只有你慢慢输入.如果你是一个快速的typer,就像我怀疑这里的大多数人一样,使用keyup事件时仍然会省略第10个字符.
解决方法
也许你应该从一开始就使用textarea,只增加“rows”属性.我愿意打赌你在改变后维护你所有的角色,它的行为就像一个行=“1”的文本框.
$('.info').keypress(function() {
var count = this.value.length;
if (this.rows == 1 && count > 10)
{
this.rows = 4; // Or whatever you'd prefer.
}
});