在我的vue
-应用程序中,我有一个表单,它应该检测每个更改。我试图使用@change
和一个观察器,但没有运气...
form: {
name: "",
surname: "",
email: "",
},
changed: false
在我的模板中:
<form @change="hasChanged">
我的观察者和方法:
watch: {
form: {
handler: function(v) {
return this.hasChanged();
},
deep: true
}
},
methods: {
hasChanged(){
this.changed = true
}
}
但这不起作用……我做错了什么?
3条答案
按热度按时间g6ll5ycj1#
表单元素没有更改侦听器。请考虑改为使用onChanged事件绑定每个输入。
在我看来,你似乎想知道表单是否被编辑过。如果是这样的话,你可以试试这个
ybzsozfc2#
你可以使用vuejs的手表,一个非常简单的技巧。
ippsafx73#
基于@Babacar answer,
hasChanged
总是返回false,因为form
和defaultForm
引用的是同一个对象。在渲染之前,表单应该是一个副本。我们可以对普通情况和嵌套对象使用浅副本,我们需要使用深副本。