问题描述:在提交某项业务时,需要输入一次密码,点击下方确定后提交,但是当el-input有焦点时,按下回车会发生页面刷新事件,url中的参数也被清空。
代码如下:
<div class="password ft12">
<el-form>
<el-form-item label="签约密码:" label-width="95px" prop="password" class="password">
<el-input
class="input"
type="password"
v-model="signForm.password"
placeholder="请输入内容"
></el-input>
</el-form-item>
</el-form>
</div>
<div class="cancel">
<el-button @click="signRep()">确定</el-button>
</div>
搜索了问题触发原因,是由于当表单只有一个文本框时,按下回车将会触发表单的提交事件, 导致页面的刷新。
解决办法:
1、加一个隐藏的文本框,即表单不只有一个文本框
<div class="password ft12">
<el-form>
<el-form-item label="签约密码:" label-width="95px" prop="password" class="password">
<el-input
class="input"
type="password"
v-model="signForm.password"
placeholder="请输入内容"
></el-input>
</el-form-item>
<el-form-item style="margin-bottom:0;display:none;">
<el-input></el-input>
</el-form-item>
</el-form>
</div>
<div class="cancel">
<el-button @click="signRep()">确定</el-button>
</div>
2、在el-from 加上 @submit.native.prevent
<div class="password ft12">
<el-form @submit.native.prevent>
<el-form-item label="签约密码:" label-width="95px" prop="password" class="password">
<el-input
class="input"
type="password"
v-model="signForm.password"
placeholder="请输入内容"
></el-input>
</el-form-item>
</el-form>
</div>
<div class="cancel">
<el-button @click="signRep()">确定</el-button>
</div>