前端输入框只能输入中文(实现移动端设置高度自适应的输入框)
前端输入框只能输入中文(实现移动端设置高度自适应的输入框)contenteditable还有一种方法是把div变为可编辑的状态,但是这种方法一来就被我放弃了,因为要兼容多种机型,可能有的机型不兼容,而且要输入的字数,使用的很少见的DOMNodeInserted。以上这几种方法各自解决各自的问题,大家有统一解决的方法一起来讨论。
textarea的核心想法: $(this).height(this.scrollHeight)
这个方法在ios上会变得非常奇怪,因为我们使用input进行监听输入的时候,事实上他会把还没输入到屏幕上的文字还在输入法上的文字也计算在里边,所以使用input进行监听是非常不妥当的,事实上有一个方法能够监听中文的输入,但仅仅是中文的输入,compositionend能够监听中文的输入,没选中文的输入不会进行监听。ios出现问题就是每次设置auto,一旦我们输入的内容超过键盘,ios就会不断闪频。目前没找到解决的方法,我看作文纸条这个app上是实现了这个功能,但是他是使用的原生来实现的。
占位符:不简单的自适应高度输入框,所以那段时间疯狂在网上找解决方法。这是一种方法,但是这个方法是有问题的,如果我们要给输入的东西加上背景,比如说给textarea加上一个背景,然后问题就出现了,因为span是行内元素,背景能够到达的位置是span输入的内容范围,如果是内容少还好,内容多就炸了,一行中有一部分是没有背景颜色的。
偏移的方法就是把textarea和div的样式设置成完全一样,必须完全一样,然后把div的偏移量设置特别大,但是不能够设置div为display: none,这样我们就获取不到他的高度了,随便你怎么设置,只要隐藏这个东西就好了。
contenteditable还有一种方法是把div变为可编辑的状态,但是这种方法一来就被我放弃了,因为要兼容多种机型,可能有的机型不兼容,而且要输入的字数,使用的很少见的DOMNodeInserted。
以上这几种方法各自解决各自的问题,大家有统一解决的方法一起来讨论。