• vue按enter键刷新页面 使用@submit.native.prevent阻止表单默认提交,添加在form标签上


    情景描述:当使用@keyup.enter.native来使输入搜索内容后,按下enter键就触发搜索。会发现一个奇怪的现象:当按下enter键时,先是根据输入的内容搜索了一次,紧接着又全局刷新了一次页面。

    原因分析:当一个表单下,如果只有一个文本框时,按下回车将会触发表单的提交事件。

    原代码如下:

    <el-form :inline="true" :model="listQuery" class="demo-form-inline">
          <el-form-item label="用户名:">
            <el-input v-model.trim="listQuery.username" clearable v-focus @keyup.enter.native="getList"></el-input>
          </el-form-item>
          <el-form-item>
            <el-button type="primary" @click="search">查询</el-button>
          </el-form-item>
        </el-form>

    解决办法:@submit.native.prevent阻止表单默认提交

    .native 表示对一个组件绑定系统原生事件

    .prevent 表示提交以后不刷新页面

    代码如下

    <el-form :inline="true" :model="listQuery" class="demo-form-inline" @submit.native.prevent>
          <el-form-item label="用户名:">
            <el-input v-model.trim="listQuery.username" clearable v-focus @keyup.enter.native="getList"></el-input>
          </el-form-item>
          <el-form-item>
            <el-button type="primary" @click="search">查询</el-button>
          </el-form-item>
        </el-form>

    @submit.native.prevent 阻止默认提交,添加在form标签上

    @keyup.native.enter 回车操作,添加在input标签上

  • 相关阅读:
    Semaphore wait has lasted > 600 seconds
    mysql二进制日志
    HashMap(JDK1.9)详解
    企业中如何批量更改mysql中表的存储引擎?
    mysql监控
    String源码详解
    字符编码详情
    mysql事务详解
    数据库水平分表(一个大数据量的表)
    bat
  • 原文地址:https://www.cnblogs.com/zwh0910/p/15588689.html
Copyright © 2020-2023  润新知