如何在短时间按下按钮后或直到功能完成后禁用按钮
How to disable button after its pressed for short time or until function is comeplete
我有一个提交表单按钮,按下它会上传一张图片,然后将您带回仪表板。但是,如果您在上传期间一直按下按钮,它将不断上传相同的图片。
我正在使用 vue 和 buefy。
<wizard-button
v-else
@click.native="donePressed"
:style="props.fillButtonStyle"
>{{props.isLastStep ? 'Done' : 'Next'}}</wizard-button>
在 donePressed()
donePressed() {
bus.$emit('i-got-clicked', '')
},
我想我需要在这里放一些东西,但我不知道按钮是什么以及如何做
理想情况下,我喜欢在功能完成之前禁用按钮 运行,但禁用它大约 3 秒可能就足够了。
任何帮助表示赞赏。谢谢
无法知道 wizard-button
接受哪些属性,但假设它为您提供与 button
相同的原始 HTML 道具:
<wizard-button
v-else
@click.native="donePressed"
:style="props.fillButtonStyle"
:disabled="loading"
>{{props.isLastStep ? 'Done' : 'Next'}}</wizard-button>
async donePressed() {
this.loading = true // set this before running anything
await new Promise((resolve, reject) => {
//do all your functions in here, then call resolve()
resolve()
})
//now you can update the loading variable
this.loading = false
}
并在包含 <wizard-button>
的组件中的 data
中定义 loading
我有一个提交表单按钮,按下它会上传一张图片,然后将您带回仪表板。但是,如果您在上传期间一直按下按钮,它将不断上传相同的图片。
我正在使用 vue 和 buefy。
<wizard-button
v-else
@click.native="donePressed"
:style="props.fillButtonStyle"
>{{props.isLastStep ? 'Done' : 'Next'}}</wizard-button>
在 donePressed()
donePressed() {
bus.$emit('i-got-clicked', '')
},
我想我需要在这里放一些东西,但我不知道按钮是什么以及如何做
理想情况下,我喜欢在功能完成之前禁用按钮 运行,但禁用它大约 3 秒可能就足够了。 任何帮助表示赞赏。谢谢
无法知道 wizard-button
接受哪些属性,但假设它为您提供与 button
相同的原始 HTML 道具:
<wizard-button
v-else
@click.native="donePressed"
:style="props.fillButtonStyle"
:disabled="loading"
>{{props.isLastStep ? 'Done' : 'Next'}}</wizard-button>
async donePressed() {
this.loading = true // set this before running anything
await new Promise((resolve, reject) => {
//do all your functions in here, then call resolve()
resolve()
})
//now you can update the loading variable
this.loading = false
}
并在包含 <wizard-button>
data
中定义 loading