问答

element input使用@keyup.enter.native

作者:admin 2021-04-20 我要评论

1.想要实现的功能 输完验证码后敲回车,可以进行登录 2.实现的思路 ` el-form :model="loginForm" :rules="rules" ref="loginForm" class="loginForm" @submit.na...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

1.想要实现的功能

输完验证码后敲回车,可以进行登录

2.实现的思路
`

<el-form
  :model="loginForm"
  :rules="rules"
  ref="loginForm"
  class="loginForm"
  @submit.native.prevent>
    <el-form-item prop="authCode" class="login-item">
        <span class="loginTips iconfont icon-yanzhengma"></span>
        <el-input
          @keyup.enter.native="submitForm('loginForm')"
          class="area"
          type="authCode"
          placeholder="请输入验证码"
          v-model="loginForm.authCode"
        ></el-input>
    </el-form-item>
 </el-form>

`
在输完验证码后,敲回车,随即调登录的方法

      submitForm(loginForm) {
          this.$refs[loginForm].validate((valid) => {
            if (valid) {
              let params = {
                authCode: this.loginForm.authCode,
              };
              this.$http
                .wisdomPost(`url`, params)
                .then((res) => {
                    // 成功的话跳转到登录页,
                    // 验证码错误的话 重新刷新验证码
                    }
          });
    },

按照以上方法写完后会有一个bug
在输入正确的验证码后,连敲两次回车,就会触发两次登录的接口,第一次登录成功,第二次会有一个验证码错误的弹窗,这样很容易误导人

请问该怎么防止用户连敲两次回车呢?????

###

可以选择加个开关 就像loading一样 回车时候loading true 请求完成loading false
请求前判断loading是否为false
如果这种需求过多 可以选择axios拦截器里面操作
https://www.cnblogs.com/linbudu/p/11259070.html

###

在你的触发事件里让当前元素失去焦点就行了

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • nginx响应速度很慢

    nginx响应速度很慢

  • 点击选中的多选框,会在已选那一栏显示

    点击选中的多选框,会在已选那一栏显示

  • PHP 多态的理解

    PHP 多态的理解

  • 关于C语言中static的问题

    关于C语言中static的问题

腾讯云代理商
海外云服务器