天天看點

Vue中mintui的field實作blur和focus事件

首先上代碼說總結:

<mt-field label="卡号" v-model="card.cardNo" @blur.native.capture="checkCard"></mt-field>
           
methods: {
 checkCard() {
  console.log('1111');
 }
} 
           

使用@blur.native.capture=""即可實作。

另一種方法:

使用vue-directive指令實作。這種方法有個問題沒解決,不推薦使用。

<mt-field label="卡号" v-model="card.cardNo" v-mintblur></mt-field>
           
Vue.directive('mintblur', { // 暫不使用directive實作blur事件了,使用@blur.native.capture="cardNoBlur"即可。
  inserted: function(el, pra, a) {
    let oInput = el.querySelector('input');
    console.log('oInput', oInput);
    oInput.onfocus = function() {
      // 建立focus的事件
    };
    oInput.onblur = function() {
      console.log('blu1r');
      this.$emit(pra.expression);
    };
  }
});
           

這種方法暫不支援類似于v-mintblur="myfunction"調用自定義函數處理功能:

<mt-field label="卡号" v-model="card.cardNo" v-mintblur="myfunction"></mt-field>