第1个回答 2022-06-11
最近遇到了一个特别恶心的bug,做一个多行文本输入框,用textarea,之后发现在安卓和客户端上能正常显示和输入,而在苹果手机输入汉字的时候,汉字的拼音会自动联想输入到输入框中,十分影响体验,输入汉字的时候,会把你敲的拼音和你确定选择的汉字一起显示在输入框中,要多恶心有多恶心。
把textarea用div替代。
但是在submit表单提交时,不能获取到这个模拟输入框的值自动提交,可以弄一个隐藏表单,取出这个模拟输入框的值赋值给他再提交。
查阅相关资料,发现是和输入框的输入事件(input的事件有关),可以监听他的输入事件,在输入前,输入时,输入后进行操作,避免ios手机输入框实时监听你按下键盘,这样你只有按下完成的拼音,选择完你要打的字之后,这个input的事件才会触发。
这是我最后才发现的解决方法,原理不知道,textarea中不能使用oninput事件,使用了的话苹果手机就会出现那种情况,其它系统不会。