elementui中table进行表单验证

javascript 复制代码
<el-form :model="ruleForm" ref="ruleForm" class="demo-ruleForm">
  <el-table :data="ruleForm.tableDataShou" border style="width: 100%;">
    <el-table-column type="index" label="序号" width="50" align="center"></el-table-column>
      <el-table-column prop="lon" label="经度" align="center">
        <template v-slot="scope">
           <el-form-item :prop="'tableDataShou.'+scope.$index+'.lon'" :rules="rules.lon">
              <el-input v-model="scope.row.lon"></el-input>
           </el-form-item>
        </template>
      </el-table-column>
      <el-table-column prop="lat" label="纬度" align="center">
         <template v-slot="scope">
            <el-form-item :prop="'tableDataShou.'+scope.$index+'.lat'" :rules="rules.lat">
              <el-input v-model="scope.row.lat"></el-input>
            </el-form-item>
          </template>
       </el-table-column>
  </el-table>
</el-form>
<el-button type="primary" @click="finish('ruleForm')">输入完成</el-button>
javascript 复制代码
data() {
    var longitude = (rule, value, callback) => {
      let isTrue =
        /^(\-|\+)?(((\d|[1-9]\d|1[0-7]\d|0{1,3})\.\d{0,6})|(\d|[1-9]\d|1[0-7]\d|0{1,3})|180\.0{0,6}|180)$/;
      if (!isTrue.test(value)) {
        callback(new Error("请按照经度规则输入"));
      } else if (value.slice(-1) == ".") {
        callback(new Error("最后一位不能是小数点"));
      } else {
        callback();
      }
    };
    var latitude = (rule, value, callback) => {
      let isTrue = /^(\-|\+)?([0-8]?\d{1}\.\d{0,6}|90\.0{0,6}|[0-8]?\d{1}|90)$/;
      if (!isTrue.test(value)) {
        callback(new Error("请按照纬度规则输入"));
      } else if (value.slice(-1) == ".") {
        callback(new Error("最后一位不能是小数点"));
      } else {
        callback();
      }
    };
   return {
      ruleForm: {
        tableDataShou: [{ lon: "", lat: "" }],
      },
      rules: {
        lon: [{ require: true, validator: longitude, trigger: "change" }],
        lat: [{ require: true, validator: latitude, trigger: "change" }],
      },
    };
  },
javascript 复制代码
finish(formName) {
  this.$refs[formName].validate((valid) => {
    if (valid) {
        console.log("验证通过");
     } else {
         console.log("error submit!!");
         return false;
     }
  });
}
相关推荐
独秀不如众秀6 分钟前
前端页面引擎协议:由浅入深——从 30 行到 vform3 的演化之路
前端
学网安的肆伍16 分钟前
【044-WEB攻防篇】PHP应用&SQL盲注&布尔回显&延时判断&报错处理&增删改查方式
前端·sql·php
八号当铺33 分钟前
从 Prompt 到 AI 工程化:理解 Rules、Skills 与 Agent
前端·ai编程·cursor
倒带人生36 分钟前
将 $confirm 对话框改为 a-modal 实现的通用技术方案
javascript·ant design
didadida26237 分钟前
子路径部署 Vue/React 应用偶发白屏
前端·后端
invicinble37 分钟前
前端框架使用vue-cli (第五层:构建打包层--总体层介绍)
前端·vue.js·前端框架
前端那点事42 分钟前
Vuex刷新数据丢失?4种持久化方案全覆盖,从零到项目落地(实战完整版)
前端·vue.js
Cerrda42 分钟前
性能提升 satisfying!一个 Vue3 指令干掉页面上 200 个无用 Tooltip 实例
前端·设计
漫游的渔夫42 分钟前
前端开发者做 AI Agent:别只渲染答案,用 7 个状态接住确认、错误和 trace
前端·人工智能·typescript
clove42 分钟前
从 LLM 到 Agent:一篇文章课带你彻底搞懂 AI 智能体的核心逻辑
前端