鍍金池/ 問答/HTML/ vue沒有點提交按鈕,在input輸入時就觸發(fā)submit了,不知道為什么

vue沒有點提交按鈕,在input輸入時就觸發(fā)submit了,不知道為什么

vue沒有點提交按鈕,在input輸入時就觸發(fā)submit了,不知道為什么。

因為不想觸發(fā)submit時刷新,我就加了prevent
我是為了自己寫一個自定義的表單校驗指令

相關(guān)代碼
.vue頁面

<template>
  <div>
    交易1_1
    <form novalidate @submit.stop.prevent.self v-submit="dosubmit()" >
      <input type="text" v-model='a' name='a' required minlength="2" maxlength="6" pattern="/^\d*$/" />
      <input type="submit" value="提交" />
    </form>
  </div>
</template>

<script>
export default {
  name: "caidan1_1",
  data () {
    return {
      a:''
    }
  },
  methods:{
    dosubmit:function(){
      debugger
      console.log(this.a);
    }
  }
}
</script>

<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>

</style>

以及我的自定義指令,還沒寫完,別介。。。

import Vue from "vue";
const types=["checkbox","color","date","datetime","datetime-local","month","week","time","email","file","hidden","number","password","radio","range","search","tel","text","url"];
Vue.directive("submit",{
    bind:function(el,binding,vnode,oldVnode){
        
    },
    inserted:function(el,binding,vnode,oldVnode){
        debugger
        el.addEventListener('submit',function(){
            scope[fn.replace(/\(.*\)/,"")]();
        });
        const scope=vnode.context;
        const fn=binding.expression;
        const vModelList=[];
    },
    update:function(el,binding,vnode,oldVnode){},
    componentUpdated:function(el,binding,vnode,oldVnode){},
    unbind:function(el,binding,vnode,oldVnode){}
});


回答
編輯回答
影魅

我把v-submit="dosubmit()"去掉就沒這個問題了,大概是我的指令有什么問題,我再自己看看。。。

v-submit="dosubmit",不能帶(),醉了,@click就可以帶啊,奇了怪了。要是這樣,如果submit時要帶參數(shù)就不行了呀

2018年3月14日 19:43