-
问题背景
- 当仅有一个el-input的时候,在el-input中回车会触发默认的form表单提交事件,导致页面刷新。如果有多个表单元素则不会出现这个问题
-
原因
-
解决方案
-
在el-from表单上使用
- vue2:@submit.native.prevent.capture
- vue3:@submit.native.prevent
-
<el-form ref="formRef" :model="form" :rules="rules" @submit.native.prevent> <el-form-item label="输入" prop="inputField"> <el-input v-model="form.inputField" @keyup.enter="handleSubmit"></el-input> </el-form-item> <el-button type="primary" @click="handleSubmit">提交</el-button> </el-form>
-
在提交方法中调用
event.preventDefault()
:在你自定义的提交处理函数中阻止默认行为。-
handleSubmit(event) { if (event) { event.preventDefault(); // 阻止默认提交行为 } } ' 运行 运行
-
-
监听
@keyup.enter
事件,在输入框中捕捉回车事件,直接调用提交方法,而不依赖于表单的默认行为。-
<el-input v-model="form.inputField" @keyup.enter="handleSubmit"></el-input> handleSubmit() { ...... }
-
-