首先这里又一个vue写的form并且里面只有一个input框,有一次在测试时无意中发现这个input框在不输入任何值的时候,按一下键盘上的回车键整个页面就会被刷新
<el-form :inline="true" ref="form" :model="dt" class="demo-form-inline">
<el-form-item label="用户编码:">
<el-input v-model="dt.userCode" placeholder="请输入用户编码"></el-input>
</el-form-item>
</el-form>
经查阅资料得知原因,在当前页面元素中只有一个文本框时,点击回车时会自动提交表单;
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.
当表单中只有一个单行文本输入框时,客户端应该接受该区域中的Enter作为提交表单的请求
解决办法:只需要加上@submit.native.prevent即可阻止事件
<el-form :inline="true" ref="form" :model="dt" class="demo-form-inline @submit.native.prevent">
<el-form-item label="用户编码:">
<el-input v-model="dt.userCode" placeholder="请输入用户编码"></el-input>
</el-form-item>
</el-form>