当我注册了两个自定义指令,v-model绑定两个不同的字段,绑定还会相互影响数据的变动吗?反复看了文档,也搜索了很久,没有找到有人碰到过类似问题的。还是我自己的用法有问题?
问题如图所示:
当我注册了两个自定义指令,v-model绑定两个不同的字段,绑定还会相互影响数据的变动吗?反复看了文档,也搜索了很久,没有找到有人碰到过类似问题的。还是我自己的用法有问题?
问题如图所示:
if (!regx.test(value)) {
console.log('验证电话号码')
e.target.value = '';
return;
}
这里正则判断不正确让e.target.value = '';为空
另附上另一种解法:
Vue.directive('phone', {
bind(el,binding,vnode) {
let _this = vnode.context;
el.onblur = function (e) {
let value = e.target.value;
// 包含移动和座机号码
let regx = /(\(\d{3,4}\)|\d{3,4}-|\s)?\d{7,14}/;
if (!regx.test(value)) {
_this.user.phone = e.target.value = '';
return;
}
}
}
})
Vue.directive('email', {
bind(el,binding,vnode) {
let _this = vnode.context;
el.onblur = function (e) {
let value = e.target.value;
// 邮箱验证正则
let regx = /^[A-Za-z\d]+([-_.][A-Za-z\d]+)*@([A-Za-z\d]+[-.])+[A-Za-z\d]{2,4}$/;
if (!regx.test(value)) {
_this.user.email = e.target.value = '';
return;
}
}
}
})
9 回答9.4k 阅读
6 回答5.1k 阅读✓ 已解决
5 回答3.7k 阅读✓ 已解决
4 回答8k 阅读✓ 已解决
7 回答10.1k 阅读
5 回答8.3k 阅读
2 回答10.4k 阅读✓ 已解决
你在写校验的时候清空了dom里的值,但是vue实例data里的值没有变,也就是v-model绑定的值是没变的,如果需要修改data里的值可以参考如下代码,通过指令传参的方法去修改data值