失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > Vue.js - watch对象的属性在IE9下失效

Vue.js - watch对象的属性在IE9下失效

时间:2020-05-03 08:09:47

相关推荐

Vue.js - watch对象的属性在IE9下失效

公司项目有IE9的需求,今天一测试发现好多bug。

第一个问题就是:有一个输入框,watch这个输入框里的值,当值匹配到手机格式时相向后台发送请求,执行一系列操作。代码长这样:

实际问题就是监听不到 ‘cashierData.mobile’(对象里的属性)了,但是可以监听到对象,

(是不是觉得IE9这货很神奇??对象可以但是对象的属性不可以!我也很绝望啊!)

这里提个题外话,当watch监听的是一个对象里的属性时要用单引号引起来,像上面代码那样,如果是个单纯的对象的话就不需要单引号。

解决方法如下:

vue监听input输入框的change事件,然后再事件里执行请求就可以:

在输入框中增加一个v-on:input方法

<el-input v-model="mobile" v-on:input="handlerMobile(mobile)"></el-input>

需要注意的是,在这里不能使用@input@change@oninput等指令,无法生效的。

接下来只需要在methods中,加上刚刚写的handlerMobile方法,里面的ajax内容还是一样,不过换了一种监听方式而已,代码如下:

handlerMobile: function(val){if ((/^1\d{10}$/.test(val)) && val) {this.$http.post('/cashier/ajax-valid-user', {mobile: val}, {headers: {'Content-Type': 'application/x-www-form-urlencoded'},emulateJSON: true}).then(function (response) {var that = this;if (response.data.code == -1) {this.$message.error('无此会员号,不可进行购买操作');vue.disableChose = true;} else {vue.disableChose = false;return true;}}, function (response) {alert('请求失败处理'); //失败处理});} else {vue.disableChose = true;return false;}},

如果觉得《Vue.js - watch对象的属性在IE9下失效》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。