Element-ui的使用(二):Form表单(基本效验)

一、简单的Form使用及效验

由输入框、选择器、单选框、多选框等控件组成,用以收集、校验、提交数据

在此以登录案例作为分析使用

1、效果图

2、分析

2.1、布局

<el-form :rules="loginRules" hide-required-asterisk :show-message="false">
              <el-form-item label="用户名" prop="username">
                <el-input
                  v-model="user.username"
                  placeholder="请输入用户名"
                  clearable
                  prefix-icon="el-icon-user-solid"
                  @blur="usernameBlur"
                ></el-input>
              </el-form-item>
              <el-form-item label="密码" prop="passwd">
                <el-input
                  v-model="user.passwd"
                  placeholder="请输入密码"
                  show-password
                  prefix-icon="el-icon-s-goods"
                  @blur="passwdBlur"
                ></el-input>
              </el-form-item>
              <el-row type="flex" justify="space-between">
                <el-checkbox v-model="loginChecked">记住密码</el-checkbox>
                <el-link :underline="false">忘记密码?</el-link>
              </el-row> 
              <el-form-item>
                <el-row type="flex" justify="space-between">
                  <el-button type="success" @click="btn_login">登录</el-button>
                  <el-button type="primary" @click="btn_register">注册</el-button>
                </el-row>
              </el-form-item>
            </el-form>

分析:


2.2、基础效验
rules:表单验证规则

form常用验证属性:


hide-required-asterisk :是否显示必填字段的标签旁边的红色星号

  • 表单form设置hide-required-asterisk就隐藏红色星号(不用绑定或者赋值)


show-message:是否显示校验错误信息

  • show-message如果不取消将会一直显示在输入框下方

  • 如上图原生的验证会出现一些弊端:
    1、message提示信息会一直显示
    2、输入值后失去焦点并不能判断输入框是否有值,并关闭提示信息
    3、进入登录界面直接输入值之后,也会弹出提示

  • 以上问题严重印象了用户的使用好感,所以作出如下解决方法:
    1、设置show-message = “false”不会提示下方文字,输入框边框会变红
    2、手动判断输入框失去焦点事件@bulr

用户名输入框效验:

usernameBlur() {
      console.log("name:" + this.user.username);
      if (this.user.username != null) {
        this.loginRules.username[0].required = false;
      }
      if (this.user.username == null || this.user.username == "") {
        this.loginRules.username[0].required = true;
        this.showMassage("请输入用户名!");
      }
    }

密码输入框效验:

passwdBlur() {
      console.log("pass:" + this.user.passwd);
      if (this.user.passwd != null && this.user.passwd.length >= 3) {
        this.loginRules.passwd[0].required = false;
      } else {
        this.showMassage("密码大于三位!");
      }
      if (this.user.passwd == null || this.user.passwd == "") {
        this.loginRules.passwd[0].required = true;
        this.showMassage("请输入密码!");
      }
    }

原理:失去焦点时判断输入框是否有值,如果有值则将效验的规则required关闭,反之则打开
细节:当输入框没有输入值的时候输入框的值是undefined,当输入值之后又将值清空输入框的值是,所以在判断的时候都要加上判断

2.3、弹出框提示

   /**
     * 错误验证提示框
     */
    showMassage(content) {
      this.$message({
        showClose: true,
        message: content,
        type: "error",
        duration:1000
      });
    }

在效验的时候调用提示框(传值)方法就可以了

2.4、调用网络接口完全登录的整个Form效验

RequestLogin(this.user)
        .then(res => {
          if (res.data.resultCode == 1) {
            that.$store.dispatch("SAVELOGINUSER", that.user); //保存登录信息
            that.$router.replace({ name: "usermassage" }); //router到查看用户界面
            // console.log(`登录成功!`);
          } else {
            that.showMassage("用户名/密码错误!");
          }
        })
        .catch(err => {
          that.showMassage(err);
        });
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,835评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,598评论 1 295
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,569评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,159评论 0 213
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,533评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,710评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,923评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,674评论 0 203
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,421评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,622评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,115评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,428评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,114评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,097评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,875评论 0 197
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,753评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,649评论 2 271