问题描述:
vue中在input上加回车事件并没有按照预想的去查询,而是整页刷新了一下。
代码如下:
<el-form-item label="用户名">
<el-input v-model="params.condition.name" placeholder="用户名或姓名" @keyup.enter.native="getUsers()"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="getUsers()">查询</el-button>
</el-form-item>
用回车事件@keyup.enter.native调用getUser方法并没有成功。点击查询按钮却可以正常查询。
解决问题:
我先是查到vue官方文档将原生事件绑定到组件,后来发现element官方文档中更简单的解决方法,
原文如下:
W3C 标准中有如下规定:
When there is only one single-line text input field in a form, the user agent should accept Enter in that field as a request to submit the form.
即:当一个 form 元素中只有一个输入框时,在该输入框中按下回车应提交该表单。如果希望阻止这一默认行为,可以在 标签上添加 @submit.native.prevent。
原来在el-form标签上加上@submit.native.prevent就可以解决了。