消息关闭
    暂无新消息!

computed: {

cardNum: {
    get: function() {
        return this.ruleForm.cardNum;
    },
    set: function(val) {
        this.ruleForm.cardNum = val.substring(0, 20);
    }
}

}

我将该cardNum绑定给了input的v-model,想以此来实现对该值的过滤(vue.js2.0后不能给v-model的变量绑定过滤器好像),但发现当输入超过20个字符时,虽然this.ruleForm.cardNum会被截取,但cardNum却可超过20个字符,请教大神应该如何实现该字符长度限制功能呢?


2个回答

︿ 2

你这样做,计算属性的setter是不会触发的,除非手动触发 (vm)this.cardNum = 'what?'
查看文档

或者你可以直接使用vue提供的watcher处理,如下:

watch: {
  'ruleForm.cardNum': function (newValue) {
     // do something...
  }
}

但不建议这样做