当使用 @keyup.enter 事件,敲击 enter 回车之后,直接提交表单。
当 form 表单中,只有一个输入框时,添加 @keyup.enter.native 事件,在该输入框中按下回车后提交表单;如果希望阻止这一默认行为,可以在标签上添加 @submit.native.prevent 事件。
<el-form label-width="5px">
<el-form-item label="手机号">
<el-input v-model.trim="form.username" @keyup.enter.native="handleSubmit" />
</el-form-item>
<el-form-item label="密码">
<el-input type="password" v-model.trim="form.password" @keyup.enter.native="handleSubmit" />
</el-form-item>
<el-form-item>
<el-button type="primary" :loading="loading" @click="handleSubmit">登录</el-button>
</el-form-item>
</el-form>
或者使用 @submit.native.prevent
<el-form label-width="5px" @submit.native.prevent>
......
</el-form>
当然我们也可以使用 vue 的生命周期函数,全局监听 enter 事件。
created() {
var _self = this
document.onkeydown = function(e) {
var key = window.event.keyCode
if (key === 13) {
_self.handleSubmit()
}
}
},
beforeDestroy() {
document.onkeydown = function(e) {
var key = window.event.keyCode
if (key === 13) { ... }
}
},
在 created 生命周期中,在组件上添加全局 enter 监听事件;在 beforeDestroy 生命周期中,将要离开这个界面时,取消 enter 监听事件。