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
}
}