Javascript vue.js+;android键盘-型号上缺少最后键入的单词

Javascript vue.js+;android键盘-型号上缺少最后键入的单词,javascript,android,vue.js,input,dom-events,Javascript,Android,Vue.js,Input,Dom Events,我正在尝试调试一个奇怪的问题: <textarea v-model='val' @input='test'></textarea> <div> {{val}}</div> <div>{{log}}</div>' <script> var app = new Vue({ el: "#app", template: "#template", data: { val:"" ,log:""}, metho

我正在尝试调试一个奇怪的问题:

<textarea v-model='val' @input='test'></textarea> <div> {{val}}</div> <div>{{log}}</div>'
<script>
var app = new Vue({
    el: "#app", template: "#template", data: { val:"" ,log:""},
    methods: {
        test() {
            this.log += "."
        }
    }
});
</script>
{{val}}{{log}
var app=新的Vue({
el:#应用程序,模板:#模板,数据:{val:,日志:},
方法:{
测试(){
this.log+=”
}
}
});

在Android上,启用虚拟键盘自动提示时,
val
变量在键入时不会更新,直到用户按下空格键,或单击自动提示的单词,或模糊文本区域。

问题主要在于启用自动更正时键入时未触发的
输入
事件。这在
v-model
中被破坏,因此在这种情况下,基础模型不会更新

解决办法:

  • 删除
    v-model
    ,并直接绑定到
    keydown
    事件

    <textarea  v-model="text"  ref="textarea" autocomplete="off"  @keydown="test" ></textarea>
    
  • 在文本区域添加一个
    autocorrect=“off”
    。这将隐藏键盘上的自动更正,从而解决问题


  • 对于仍然遇到此问题的用户,可能不需要绑定到
    键下
    事件或关闭自动更正。自

    v-model="example" 
    
    只是语法上的糖,可以扩展到

    :value="example" @input="example= $event.target.value"
    

    我在Android和autocorrect上遇到了完全相同的问题,这为我解决了这个问题。这可能是Vue 2的一个bug,因为它在Vue 1中工作得很好。请参见此处的讨论

    很好!你被描述成同样的问题,但比我好。另见:
    :value="example" @input="example= $event.target.value"