vue prevent multiple clicks, repeat request

1. Add custom file preventReClick.js

Import view from 'View'

const preventReClick = Vue.directive ( 'preventReClick' , {
    inserted: function (el, binding) {
        el.addEventListener('click', () => {
            if (!el.disabled) {
                el.disabled = true
                setTimeout(() => {
                    el.disabled = false
                }, binding.value || 3000)
            }
        })
    }
});

export { preventReClick }

 

2. References in main.js

preventReClick from Import './store/preventReClick' // preventing multiple clicks, resubmit

 

3. implementation. Add v-preventReClick on the button

<el-button class="common-button" size="small" type="primary" @click="handleSave('form')" v-preventReClick>保 存</el-button>

 

Guess you like

Origin www.cnblogs.com/shiblog/p/12119672.html