Javascript Vue如何检测表单输入更改

Javascript Vue如何检测表单输入更改,javascript,vue.js,vuejs2,Javascript,Vue.js,Vuejs2,在我的vue-应用程序中,我有一个表单,可以检测每个更改。我试着使用@change和一个观察者,但没有运气 form: { name: "", surname: "", email: "", }, changed: false 然后在我的模板中: <form @change="hasChanged"> 但这不起作用。。。。我做错了什么?表单元素没有更改侦听器。考虑将每个输入绑定到Oncha

在我的
vue
-应用程序中,我有一个表单,可以检测每个更改。我试着使用
@change
和一个观察者,但没有运气

form: {
  name: "",
  surname: "",
  email: "",
},
changed: false
然后在我的模板中:

<form @change="hasChanged">

但这不起作用。。。。我做错了什么?

表单元素没有更改侦听器。考虑将每个输入绑定到Onchange事件而不是.< /P> 从我看到的情况来看,您似乎想知道表单是否已编辑。那样的话,你可以试试这个


const defaultForm={
名字:'',
姓氏:“”,
电子邮件:“”,
}  
导出默认值{
数据(){
返回{
表格:defaultForm
}
},
计算:{
已更改(){
返回Object.keys(this.form).some(field=>this.form[field]!==defaultForm[field])
}
}
}

表单元素没有更改侦听器。考虑将每个输入绑定到Onchange事件而不是.< /P> 从我看到的情况来看,您似乎想知道表单是否已编辑。那样的话,你可以试试这个


const defaultForm={
名字:'',
姓氏:“”,
电子邮件:“”,
}  
导出默认值{
数据(){
返回{
表格:defaultForm
}
},
计算:{
已更改(){
返回Object.keys(this.form).some(field=>this.form[field]!==defaultForm[field])
}
}
}

您应该将其放置在具有更改事件(如Input)的elment上您应该将其放置在具有更改事件(如Input)的elment上这不起作用,计算值始终返回Falsehm这不起作用,计算值始终返回false
watch: {
    form: {
        handler: function(v) {
            return this.hasChanged();
        },
        deep: true
    }
},
methods: {
  hasChanged(){
    this.changed = true
  }
}