当前位置:   article > 正文

Vue2中使用ElementUI组件Form组件的校验validate_elform 对象包对象怎么校验

elform 对象包对象怎么校验

先准备一些el-form元素 这里面el-form中:model(v-bind:model)是单项绑定的,如果你写成了v-model=""可能会出现校验没有效果的情况。

 这是校验过后的结果了 

现在开始使用下吧! 

1.在el-form中绑定一个ref,名字自拟,后续触发检验结果需要使用到它

2.准备rules对象,里面装校验的内容

3.需要校验的元素上需要加上prop,这个是对应校验的内容的。注意的是 如果是双向绑定的如(input)的prop的名字必须和绑定的元素名字一样,比如我的收集数据为SkuForm.skuName那么prop值为skuName就好了,否则有可能校验不起来

  1. <el-form ref="SkuForm" label-width="100px" :rules="rules" :model="SkuForm">
  2. <el-form-item label="SPU名称" prop="prop">
  3. <span>{{ spu.spuName }}</span>
  4. </el-form-item>
  5. <el-form-item label="SKU名称" prop="skuName">
  6. <el-input placeholder="请输入SKU名称" v-model="SkuForm.skuName"></el-input>
  7. </el-form-item>
  8. <el-form-item label="价格(元)" prop="price">
  9. <el-input placeholder="价格(元素)" v-model="SkuForm.price"></el-input>
  10. </el-form-item>
  11. <el-form-item label="重量(千克)" prop="weight">
  12. <el-input placeholder="重量(千克)" v-model="SkuForm.weight"></el-input>
  13. </el-form-item>
  14. <el-form-item label="规格说明" prop="skuDesc">
  15. <el-input type="textarea" rows="4" v-model="SkuForm.skuDesc"></el-input>
  16. </el-form-item>
  17. <el-form-item label="图片列表" prop="skuImageList">
  18. <!-- :data="tableData" -->
  19. <el-table style="width: 100%" border :data="skuImageList" @selection-change="changeSelect" ref="ImageTable"
  20. :highlight-current-row="true">
  21. <el-table-column type="selection" width="55" prop="prop">
  22. </el-table-column>
  23. <el-table-column label="图片" prop="prop">
  24. <template slot-scope="{row,$index}">
  25. <img :src="row.imgUrl" style="width:100px;height:100px" />
  26. </template>
  27. </el-table-column>
  28. <el-table-column label="名称" prop="imgName">
  29. </el-table-column>
  30. <el-table-column label="操作" prop="caozuo">
  31. <template slot-scope="{row,$index}">
  32. <el-button type="primary" v-if="row.isDefault == 0" @click="changeDefault(row)">设置默认</el-button>
  33. <el-button v-else>默认</el-button>
  34. </template>
  35. </el-table-column>
  36. </el-table>
  37. </el-form-item>
  38. <el-form-item>
  39. <el-button type="primary" size="medium" @click="saveSku">保存</el-button>
  40. <el-button size="medium" @click="Cancel">取消</el-button>
  41. </el-form-item>
  42. </el-form>

存储的数据

  1. data(){
  2. //自定义校验--校验图片有没有选择 默认图片表示为1
  3. var checkimageList = (rule, value, callback) => {
  4. let result = false;
  5. if(this.imageList) {
  6. //如果没有默认图片,就返回true不放行。有默认图片就返回false放行
  7. result = this.imageList.every(item => {
  8. return item.isDefault != 1
  9. })
  10. }else{
  11. //没有选择的情况也是不放行的
  12. result = true
  13. }
  14. if (result) {
  15. callback("还没有选择默认图片哦~")
  16. }
  17. callback()
  18. }
  19. return{
  20. rules: {
  21. // 如果是双向绑定的如(input)的prop的名字必须和绑定的元素一样
  22. skuName: [
  23. { required: true, message: 'SkuName名称不能为空哦~', trigger: 'blur' },
  24. ],
  25. price: [
  26. { required: true, message: '请输入价格~', trigger: 'blur' },
  27. ],
  28. weight: [
  29. { required: true, message: '请输入重量~', trigger: 'blur' },
  30. ],
  31. skuDesc: [
  32. { required: true, message: '请输入描述~', trigger: 'blur' },
  33. ],
  34. // 检查图片是否有选择
  35. skuImageList: [
  36. { required: true,validator: checkskuImageList , trigger: 'change' }
  37. ]
  38. },
  39. SkuForm: {
  40. skuName: '',
  41. spuId: 0,
  42. weight: '',
  43. price: '',
  44. skuDesc: '',
  45. },
  46. //保存图片的
  47. skuImageList: []
  48. },
  49. }

  1. this.$refs.SkuForm.validate((valida) => {
  2. if (valida) {
  3. //如果以上校验通过,则会返回true
  4. //执行其他业务
  5. }
  6. })

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/827201
推荐阅读
相关标签
  

闽ICP备14008679号