Element-UI框架的使用(三)-- Form 表单

Form 表单

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

一、基本使用

在 Form 组件中,每一个表单域由一个 Form-Item 组件构成,表单域中可以放置各种类型的表单控件,包括 Input、Select、Checkbox、Radio、Switch、DatePicker、TimePicker

<el-form ref="form" :model="form" label-width="80px">
  <el-form-item label="活动名称">
  <!-- 在元素上采用v-model双向绑定 -->
    <el-input v-model="form.name"></el-input>
  </el-form-item>
  <el-form-item label="活动区域">
    <el-select v-model="form.region" placeholder="请选择活动区域">
      <el-option label="区域一" value="shanghai"></el-option>
      <el-option label="区域二" value="beijing"></el-option>
    </el-select>
  </el-form-item>
  <el-form-item label="活动时间">
    <el-col :span="11">
      <el-date-picker type="date" placeholder="选择日期" v-model="form.date1" style="width: 100%;"></el-date-picker>
    </el-col>
    <el-col class="line" :span="2">-</el-col>
    <el-col :span="11">
      <el-time-picker placeholder="选择时间" v-model="form.date2" style="width: 100%;"></el-time-picker>
    </el-col>
  </el-form-item>
  <el-form-item label="即时配送">
    <el-switch v-model="form.delivery"></el-switch>
  </el-form-item>
  <el-form-item label="活动性质">
    <el-checkbox-group v-model="form.type">
      <el-checkbox label="美食/餐厅线上活动" name="type"></el-checkbox>
      <el-checkbox label="地推活动" name="type"></el-checkbox>
      <el-checkbox label="线下主题活动" name="type"></el-checkbox>
      <el-checkbox label="单纯品牌曝光" name="type"></el-checkbox>
    </el-checkbox-group>
  </el-form-item>
  <el-form-item label="特殊资源">
    <el-radio-group v-model="form.resource">
      <el-radio label="线上品牌商赞助"></el-radio>
      <el-radio label="线下场地免费"></el-radio>
    </el-radio-group>
  </el-form-item>
  <el-form-item label="活动形式">
    <el-input type="textarea" v-model="form.desc"></el-input>
  </el-form-item>
  <el-form-item>
    <el-button type="primary" @click="onSubmit">立即创建</el-button>
    <el-button>取消</el-button>
  </el-form-item>
</el-form>
<script>
  export default {
    data() { // 表单中的数据项一般会用一个对象包起来(属性名一般应和后端接口中保持一致)
      return {
        form: {
          name: '',
          region: '',
          date1: '',
          date2: '',
          delivery: false,
          type: [],
          resource: '',
          desc: ''
        }
      }
    },
    methods: {
      onSubmit() {
        console.log('submit!');
      }
    }
  }
</script>

效果图

二、表单验证

表单内容一定要验证(不能相信用户的任何输入!)

步骤1-定义表单验证规则

在 data 中,补充定义规则。

格式:

data() {
  return {
      // 表单验证规则,整体是一个对象
      // 键:要验证的字段, 值:是一个数组,每一项就是一条规则
    rules: {
        // 字段名1:表示要验证的属性
        // 值: 表示验证规则列表。它是一个数组,数组中的每一项表示一条规则。
        // 数组中的多条规则会按顺序进行
        字段名1: [
          { 验证规则1 },
          { 验证规则2 },
        ],
        字段名2: [
          { 验证规则1 },
          { 验证规则2 },
        ], 
		}
  }
}

示例

  rules: {
        // 字段名:mobile就表示要验证的属性
        // 值: 是一个数组。数组中的每一项表示一条规则。
        // rules中的属性名与表单数据项中的属性名必须是一致的。
        mobile: [
           // trigger: 什么时候触发验证
          { required: true, message: '请输入手机号', trigger: 'blur' },
           // pattern : 正则
          { pattern: /^1[3-9]\d{9}$/, message: '请输入合法的手机号码', trigger: 'blur' }
        ],
         password: [
          { required: true, message: '请输入密码', trigger: 'blur' },
          { min: 6, max: 8, message: '长度为6-8位', trigger: 'blur' }
        ]
      }
步骤2-模板中的配置

内容:

  1. 给 el-form 组件绑定 model 为表单数据对象

  2. 给 el-form 组件绑定 rules 属性配置验证规则

  3. 给需要验证的表单项 el-form-item 绑定 prop 属性,注意:prop 属性需要指定表单对象中的数据名称

<el-form label-width="80px" :model="form" :rules="rules">
  <el-form-item label="手机号" prop="mobile">
    <el-input v-model="form.mobile"></el-input>
  </el-form-item>
  <el-form-item label="密码" prop="password">
    <el-input v-model="form.password"></el-input>
  </el-form-item>
  <el-form-item>
    <el-button type="primary" @click="onSubmit">立即创建</el-button>
    <el-button @click="onCancel">取消</el-button>
  </el-form-item>
</el-form>

验收效果

我们做到这一步时,当用户输入的内容不符合表单规则要求时,并且某个输入框失焦时,它会给出相应的提示,当我们输入的内容符合要求时,错误提示会自动消失。

步骤3-手动兜底验证

格式:

element-ui的表单组件.validate(valid => {
	if(valid) {
	   // 通过了验证
	} else {
	   // 验证失败
	}
})

说明:

  • validate 方法是表单组件自带的,用来对表单内容进行检验。
  • 需要在模板中添加对表单组件的引用:ref 的作用主要用来获取表单组件手动触发验证
<!-- 代码 模板 -->
<!-- 添加ref引用 -->
<el-form label-width="80px" 
+  ref="form"
   :model="form"
   :rules="rules">
onSubmit () {
  this.$refs.form.validate(valid => {
    // valid 就是表单验证的结果,如果是true,表示通过了
    // console.log(valid)
    if(valid) {
      // 通过了验证,你可以做后续动作了
      // 例如调用登录时需要向后端发送ajax的请求接口,提交表单数据
    }else {
	   // 验证失败
	}
  })
小结

步骤

  1. 定义验证规则(按element-ui的要求来)

  2. 配置模板,应用规则

    给表单设置 rules 属性传入验证规

    给表单设置model属性传入表单数据

    给表单中的元素(Form-Item )设置 prop 属性,其值为设置为需校验的字段名

  3. 手动兜底验证

  4. 下面三个地方的属性名必须一致

在这里插入图片描述

三、表单验证-自定义检验规则

rules:{
    属性名1: [
      { 
        // 注意参数顺序
        validator: function (rule, value, callback) {
      	// rule:采用的规则
        // value: 被校验的值
        // callback 是回调函数 
        // 如果通过了规则检验,就直接调用callback()
        // 如果没有通过规则检验,就调用callback(错误对象,在错误对象中说明原因)
        // 例如:callback(new Error('错误说明'))
      	}, 
        trigger: 'blur' 
     }]
}
小结
  • 自定义规则可以让校验逻辑更加灵活,它的格式是固定的
  • callback必须调用

四、重置表单清理校验痕迹

校验失败会有红色的提示文字,有时候我们需要在执行了某个操作之后把当前校校验失败留下的痕迹清理一下,为下一次校验做准备。

// 清理校验痕迹 恢复表单默认数据
this.$refs.form组件的引用.resetFields()
  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Element-UIform 表单是一种基于Vue.jsUI 组件,它包含了一系列表单元素,允许你快速创建表单,并且支持表单验证。它还提供了一些特殊的表单元素,如日期选择器和文件上传等,可以帮助你构建出更加复杂的表单界面。 ### 回答2: Element-UI是一套基于Vue.js的桌面端组件库,其中form表单是其中一个常用的组件之一。Element-UIform表单提供了方便易用的表单创建和验证工具,能够快速地创建出美观、灵活的表单界面。 Element-UIform表单具有多种表单项类型,例如文本输入框、选择框、日期选择器等,能够满足各种不同类型的表单需求。同时,Element-UI还提供了规则验证机制,可以对表单进行必填项验证、长度验证等,保证用户输入的有效性。此外,Element-UIform表单还支持表单布局的设置,可以通过配置参数实现单列、多列等不同的布局方式,适应不同的界面布局需求。 在使用Element-UIform表单时,只需要在Vue.js的组件中引入form表单组件并进行配置,即可快速创建出一个完整的表单页面。开发者只需要设置表单项的类型和验证规则等参数,Element-UI会自动根据配置渲染出相应的表单界面,并对用户输入的内容进行验证。而且,Element-UIform表单还支持表单响应式的设计,能够根据不同设备的宽度进行自适应调整,确保在不同分辨率的屏幕上都能正常显示。 总之,Element-UI中的form表单是一个功能强大、使用方便的组件,可以快速创建出各种类型的表单界面,并提供了灵活的验证机制和布局设置,帮助开发者提高开发效率。 ### 回答3: element-ui 中的 form 表单是一个用于收集和验证用户输入信息的组件。它提供了丰富的表单元素和验证规则,方便开发者进行表单的设计和数据校验。 首先,element-uiform 表单可以用来创建各种表单元素,如输入框、下拉框、单选框、多选框等等。开发者可以根据需要选择合适的表单元素,并设置其属性、样式和事件。 其次,element-uiform 表单支持数据校验,可以通过设定验证规则来确保用户输入的数据的有效性。验证规则可以是内置的常见规则,如必填、最大长度、最小值等,也可以是自定义的规则。当用户提交表单时,element-ui 会自动验证表单的字段,并对不符合规则的字段进行提示。 此外,element-uiform 表单还提供了一些特殊功能。例如,可以自定义表单校验提示信息的样式和位置;可以配置表单的布局方式,如水平布局、垂直布局等;还可以设置表单的禁用状态,使其变为只读或不可编辑状态。 总的来说,element-uiform 表单是一个强大且易用的表单组件,可以满足开发者在设计表单和实现数据校验时的需求。通过使用 form 表单,开发者可以减少开发时间和工作量,提高用户体验和数据的准确性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值