应用场景:

在实际使用中经常会遇到需要在Form表单中使用table表格进行表单提交,同时又需要对table的字段进行校验,效果如图所示:

这个校验中,最关键的问题在于如何给el-form-item 动态绑定prop。

:prop="'tableData.' + scope.$index + '.字段名'"

方法一:

submit

export default {

data() {

return {

fromData:{

domains:undefined

},

fromaDataRules:{

name:[{ required: true, message: '请输入', trigger: 'blur' }],

desc:[ { required: true, message: '请填写', trigger: 'blur' }]

},

domains:[],

}

},

mounted(){

this.initDomains()

},

methods:{

initDomains(){

this.domains=[

{

name: "小红",

desc: "11123"

},

{

name: "小红",

desc: "11123"

}

]

},

init(){

this.$set(this.fromData,'domains',this.domains)

},

submit(formName){

this.$refs[formName].validate((valid) => {

if (valid) {

alert('submit!');

} else {

console.log('error submit!!');

return false;

}

});

}

}

}

上述代码中比较关键的部分有一下两点:

1、:prop="‘domains.'+scope.$index+'.name'" ,用于动态绑定prop到el-form-item;

2、this.$set(this.fromData,‘domains',this.domains) ,用于为fromData设置domains这个节点。

方法二:

submit

export default {

data() {

return {

fromData:{

fromaDataRules:{

name:[{ required: true, message: '请输入', trigger: 'blur' }],

desc:[ { required: true, message: '请填写', trigger: 'blur' }]

},

domains:[],

},

}

},

mounted(){

this.initDomains()

},

methods:{

initDomains(){

this.fromData.domains=[

{

name: "小红",

desc: "11123"

},

{

name: "小红",

desc: "11123"

}

]

},

init(){

},

submit(formName){

this.$refs[formName].validate((valid) => {

if (valid) {

alert('submit!');

} else {

console.log('error submit!!');

return false;

}

});

}

}

}

补充知识:Vue+ElementUI 完整增删查改验证功能的表格

我就废话不多说了,大家还是直接看代码吧~

查询

新增

:data="tableData"

style="width: 100%"

border>

prop="date"

label="日期"

width="250">

prop="name"

label="姓名"

width="250">

prop="address"

label="地址"

width="350">

编辑

删除

确定

取消

data () {

return {

operation: true,

dialogVisible: false,

lineData: {},

editData: {},

query: '',

addRule: {

date: [{required: true, message: '请输入日期', trigger: 'blur'}],

name: [{required: true, message: '请输入名称', trigger: 'blur'}]

},

tableData: [{

id: 1,

date: '2016-05-02',

name: '王一虎',

address: '上海市普陀区金沙江路 1518 弄'

}, {

id: 2,

date: '2016-05-04',

name: '王二虎',

address: '上海市普陀区金沙江路 1517 弄'

}, {

id: 3,

date: '2016-05-01',

name: '王一虎',

address: '上海市普陀区金沙江路 1519 弄'

}, {

id: 4,

date: '2016-05-03',

name: '王四虎',

address: '上海市普陀区金沙江路 1516 弄'

}]

}

},

methods: {

handleEdit (index, row) {

this.editData = JSON.stringify(row)

this.lineData = JSON.parse(this.editData)

this.dialogVisible = true

this.operation = false

},

handleDelete (index, row) {

this.tableData.splice(index, 1)

},

handleAdd () {

this.dialogVisible = true

this.operation = true

this.lineData = {}

this.lineData.id = Math.random()

},

handleSelect () {

if (this.query !== '') {

const tmpData = []

for (let item of this.tableData) {

if (item.name === this.query) {

tmpData.push(item)

}

}

this.tableData = tmpData

}

},

handleSave () {

this.$refs.lineData.validate((valid) => {

if (valid) {

this.addLine(this.lineData)

this.dialogVisible = false

} else {

alert('保存失败')

return false

}

})

},

handleCancel () {

this.dialogVisible = false

},

addLine (item) {

let existed = false

for (let i = 0; i < this.tableData.length; i++) {

if (this.tableData[i].id === item.id) {

this.tableData[i].id = item.id

this.tableData[i].name = item.name

this.tableData[i].address = item.address

this.tableData[i].date = item.date

existed = true

break

}

}

if (!existed) {

this.tableData.push(this.lineData)

}

}

}

}

.block{

width: 75%;

margin-left: 400px;

margin-top: 200px;

}

以上这篇使用element-ui +Vue 解决 table 里包含表单验证的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

table中加表单元素怎么验证_使用element-ui +Vue 解决 table 里包含表单验证的问题...相关推荐

  1. table中加表单元素怎么验证_element-ui 解决 table 里包含表单验证的问题!

    实际项目中的场景,需要在table里做表单的验证,如图效果: 其实问题关键就在于如何给el-form-item动态绑定prop :prop="'tableData.' + scope.$in ...

  2. element-ui 解决 table 里包含表单验证的问题!

    element-ui 解决 table 里包含表单验证的问题! 参考文章: (1)element-ui 解决 table 里包含表单验证的问题! (2)https://www.cnblogs.com/ ...

  3. 《前端》Element ui 表格(Table)组件中前端实现数据分页和模糊查询--未看

    我是用的Element ui 表格(Table)组件中的例子 下面是别人自己写的方法: Element ui 表格(Table)组件中前端实现数据分页和模糊查询_明天也要努力的博客-CSDN博客  h ...

  4. table中加表单元素怎么验证_045、DOM编程实例和表单

    1.DOM编程实例1 JavaScript this 关键词指的是它所属的对象. 它拥有不同的值,具体取决于它的使用位置: 在方法中,this 指的是所有者对象. 单独的情况下,this 指的是全局对 ...

  5. table中加表单元素怎么验证_el-table嵌入表单元素注意事项(验证规则prop写法与数据初始化)...

    场景:在el-table表格中嵌入表单元素 绑定数据: table : :data="planFormData.allocationPlan" el-form-item: v-mo ...

  6. table中加表单元素每行怎么验证_Validform 一行代码搞定整站的表单验证 - 文章

    Validform 一行代码搞定整站的表单验证,为什么能如此方便?插件的核心思想就是把所有的验证条件及验证提示信息绑定到每个表单元素,让验证代码在执行时只是核对表单下各元素的值是否跟绑定的验证条件相符 ...

  7. Vue+Element UI 下,如何给一个表单设置自定义规则或多个验证规则(:rules)

    依旧是公司里那个Vue+Element UI的项目.今天遇到了一个新的问题:表单中某个选择器的值不同,控制着下面表单内容是否显示. 大概就是这个样子.由后台返回的"发放方式"的数值 ...

  8. 如何在input输入框中加一个搜索的小图片_前端开发困难重重,如何把握机会学习?...

    第3天[form表单] 主要内容 Form表单 表单元素 表单元素的属性 HTML5新增type类型 HTML新增属性 学习目标 一.Form表单 表单在 Web 网页中用来给访问者填写信息,从而能采 ...

  9. 网页没有横向滚动条_【第四课】网页里的表单

    前言 从零开始学前端系列课程,与传统的视频大课堂教学不同,没有填鸭:也普通做练习题的方式不同,没有假想的模拟题. 本课程拆出80个左右必须掌握的技能点,并对其分组,从易到难地列出学习曲线.同时从真实项 ...

最新文章

  1. 商汤科技举办病理、放疗两大MICCAI国际挑战赛,推动AI医疗落地
  2. 797C C. Minimal string
  3. 服务器如何导入数据库文件格式,服务器如何导入数据库文件格式
  4. 手机上网流量统计_数据统计 | 上半年手机流量同比增110.2%,你贡献了多少?
  5. python单元测试unittest
  6. WPF下递归生成树形数据绑定到TreeView上
  7. k8s核心技术-集群安全机制(RBAC介绍)---K8S_Google工作笔记0039
  8. oracle中LAG()和LEAD()等分析统计函数的使用方法(统计月增长率)
  9. html5(八) IndexedDB
  10. python机器学习系列教程——深度学习框架比较TensorFlow、Theano、Caffe、SciKit-learn、Keras
  11. 如何关闭访达窗口_UG NX软件基础操作,如何自定义软件快捷键
  12. 运筹帷幄决胜千里,Python3.10原生协程asyncio工业级真实协程异步消费任务调度实践
  13. Elasticsearch系列—倒排索引原理
  14. 【R语言技巧】apply篇 sumNotes
  15. 接口试验。设计立体图形接口,包括计算表面积和体积的方法;设计圆柱体类和圆锥体类,分别实现立体图形接口,计算表面积和体积。
  16. 团队作业1——团队展示
  17. CATIA.P3.V5R21兼容版安装包和安装视频分享,CATIA新手必备
  18. 联想笔记本声音太小怎么办_电脑音量调到最大了还是声音太小,怎么办啊??...
  19. openCV ROI
  20. Outlook代收发其他邮箱(gmail, qqmail, aliyun, 163)

热门文章

  1. 12v小型电机型号大全_电机型号参数大全,再不怕看不懂型号了
  2. 基于参考点的非支配遗传算法-NSGA-III(一)
  3. Chrome developer tool介绍(javascript调试)
  4. docker运行jar包_Jenkins+Docker+Springboot单机版持续集成部署
  5. python echo off_生活中的python-随机分配单词输出至word
  6. 解决gensim fasttext官方案例报错TypeError: Either one of corpus_file or corpus_iterable value must be provide
  7. matplotlib 设置水平线、垂直线
  8. django创建新的项目、App与基本配置
  9. Python把list变为str
  10. linux如何查看nohup日志大小,linux下nohup日志输出过大问题解决方案