使用jQuery在特定字符长度后替换文本框

前端之家收集整理的这篇文章主要介绍了使用jQuery在特定字符长度后替换文本框前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用下面的简单代码用< 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.
    }
});

猜你在找的jQuery相关文章