Element-UI可以动态生成的form表单

这篇具有很好参考价值的文章主要介绍了Element-UI可以动态生成的form表单。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Element-UI可以动态生成的form表单

此form表单每一项绑定的值组成一个对象,对象叠加组成了一个对象数组,循环对象数组生成form的表单项。当点击新增一项时,其实就是给form表单对象数组添加一个对象,删除则反之。值得注意的是,由于动态表单得到的是一个对象数组,但我们需要的是表单的值组成的对象,所以我们还需要把这个对象数组转成一个对象

Element-UI可以动态生成的form表单文章来源地址https://www.toymoban.com/news/detail-509908.html

<template>
  <div class="wrap">
    <!-- 动态生成form表单 -->
    <div class="form_wrap">
      <el-form :model="form" ref="formData" :rules="rules">
        <el-row>
          <div
            class="finance_wrap_box_list"
            v-for="(item, index) in form.otherFeesList"
            :key="index"
          >
            <el-row>
              <el-col
                :span="24"
                style="
                  height: 40px;
                  display: flex;
                  justify-content: space-between;
                "
              >
                <el-form-item
                  :label="'费用' + index"
                  :prop="'otherFeesList.' + index + '.feePrice'"
                  :rules="rules.moreNotifyOjbectName"
                  style="height: 50px; width: 100%"
                  label-width="100px"
                >
                  <el-input
                    v-model="item.feePrice"
                    @blur="inputFunc($event)"
                    size="small"
                    style="width: 60%"
                    clearable
                    placeholder="请输入"
                  >
                  </el-input>
                </el-form-item>
                <div
                  class="remove_btn"
                  @click="removeList(index)"
                  style="line-height: 45px; cursor: pointer"
                >
                  <i class="el-icon-circle-close"></i>
                </div>
              </el-col>
            </el-row>
            <el-row>
              <el-col :span="24" style="height: 40px; margin-bottom: 20px">
                <el-form-item
                  label-width="100px"
                  :prop="'otherFeesList.' + index + '.feeDesc'"
                  :rules="rules.moreNotifyOjbectText"
                >
                  <el-input
                    size="small"
                    v-model="item.feeDesc"
                    clearable
                    maxlength="100"
                    minlength="4"
                    @change="inputFuncFeeDesc($event)"
                    style="width: 95%"
                    placeholder="请输入费用说明 例:差旅费,因老师在异地故提供额外交通费"
                  >
                  </el-input>
                </el-form-item>
              </el-col>
            </el-row>
          </div>
          <el-row>
            <el-col :span="24">
              <div class="add_list" @click="addList()">
                <i class="el-icon-plus" style="font-weight: bold"></i> 添加
              </div>
            </el-col>
          </el-row>
        </el-row>
      </el-form>
    </div>
  </div>
</template>

<script>
export default {
  data() {
    return {
      form: {
        otherFeesList: [
          {
            id: "",
            feeDesc: "", //费用说明
            feePrice: "", //费用金额
          },
        ],
      },
      rules: {
        moreNotifyOjbectName: [
          {
            required: true,
            trigger: "blur",
            message: "金额不能为空",
          },
          {
            pattern:
              /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/,
            message: "请输入正确格式,可保留两位小数",
          },
        ],
      },
    };
  },

  methods: {
    addList() {
      this.form.otherFeesList.push({
        id: "",
        feeDesc: "", //费用说明
        feePrice: "", //费用金额
      });
    },
    removeList(index) {
      this.form.otherFeesList.splice(index, 1);
    },
  },
};
</script>

<style>
.form_wrap {
  width: 500px;
  margin: 20px auto;
}
.add_list {
  width: 80%;
  border: 1px solid;
  text-align: center;
  font-size: 14px;
  margin: 0 auto;
  cursor: pointer;
  height: 30px;
  line-height: 30px;
}
</style>

到了这里,关于Element-UI可以动态生成的form表单的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • element-ui的form表单校验

    form表单校验基本三步: 1、定义验证规则 在data中定义表单校验规则,一个表单项可定义多条规则,表单项规则用数组,规则为对象,required为必须填写,message为校验提示信息,trigger为校验时机,可选blur和change,分别为失去焦点和数据变化;min/max为最小与最大字符个数,v

    2024年02月11日
    浏览(64)
  • Element-UI form表单 resetFields() 重置表单无效问题

    原因: resetFields() 是将表单项重置为初始值,而这个初始值是在 Vue mounted 时赋值上去的,如果在这之前对表单进行了赋值,则初始值会改变,那么后面调用 resetFields() 则不会生效(不会是定义时的空值) 方法1:将赋值操作定义在 this.$nextTick() 中(保证了初始值不被修改)

    2024年02月11日
    浏览(80)
  • element-ui form表单校验 失败的原因

    1、没有在el-form上指定model 2、el-form-item上的prop名称不对,应当与rules中的名称一致; 3、绑定的属性没有在data中声明; 4、特别重要的一点是ruleForm(数据)和rules(校验规则)里面对应的key一定要相同,一个是数据绑定的值 另外一个是值的规则。

    2024年02月11日
    浏览(46)
  • 【vue】element-ui的form数组表单验证(循环表单验证)

    基于 vue2.0 的 element-ui 的 form 表单验证比较简单,但是有些同学可能对于 数组类型 的表单验证无从下手,这里我基于一个我自己项目中的例子,展示一下怎么进行数组的表单验证。 项目截图: 上代码,为了让大家看起来比较清晰,我删掉了无关的代码: 咱们把数组验证的部

    2024年02月07日
    浏览(55)
  • element-ui form表单自定义label的样式、内容

    element-ui form表单自定义label的样式、内容

    2024年04月17日
    浏览(43)
  • element-ui的form表单的 lable添加空格并对齐

    代码如下: !-- eslint-disable -- 和 !-- eslint-enable -- 用于消除中间代码的eslint验证

    2024年02月10日
    浏览(40)
  • element-ui的el-form表单一行两个显示效果

    效果图:           代码: 因为代码重复所以这些只写了一份   css设置这些就ok了 

    2024年02月11日
    浏览(49)
  • element-ui form表单,select多选时,初始自动校验问题解决

    使用 el-select 多选框配置表单校验时, 如果绑定值为空字符串,表单中的多选下拉框会自动执行校验并提示红色文字提示,体验非常不好; 原因:form表单-value1默认为空字符串 改为空数组即可解决

    2024年02月13日
    浏览(40)
  • Vue element-ui form 表单 前端提交和后端的接收

    一、前端 1、新建弹窗dialog 2、在数据(data)里面绑定(return)数据 3、在method里新建方法 二、后端 1、在配置好mybatis-plus的前提下 2、在控制类中添加方法 3、@RequestBody注解的使用 @requestBody注解的使用 - 西风恶 - 博客园 (cnblogs.com)

    2024年02月15日
    浏览(57)
  • el-form单个表单项校验方法;element-ui表单单个选项校验;el-form单个表单校验

    当我们使用element-ui的el-form时,想在提交表单前对其中一个表单进行验证时就可以使用element自带的方法“validateField” 如图: 使用示例

    2024年02月16日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包