element UI —— form表单中Radio单选框进行切换 & 表单验证rule动态校验-validator & 保存前进行form表单校验后才能上传-validate

这篇具有很好参考价值的文章主要介绍了element UI —— form表单中Radio单选框进行切换 & 表单验证rule动态校验-validator & 保存前进行form表单校验后才能上传-validate。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

element UI —— form表单中Radio单选框进行切换 & 表单验证rule动态校验-validator & 保存前进行form表单校验后才能上传-validate

1、效果图

elementui 切换表单tab内容rules校验,vue-评分-前后台,ui,vue.js,前端

2、代码

结构

<!-- ruleForm  定义的ref名字   rules-绑定的规则 -->
<el-form :model="form" class="form" ref="ruleForm" :rules="rules" label-width="180px">
    <el-form-item label="检查范围" prop="checkRange">
        <el-radio-group v-model="form.checkRange" @change="changeCheckRange">
          <el-radio :label="'3'">按省份</el-radio>
          <el-radio :label="'4'">按城市</el-radio>
        </el-radio-group>
      </el-form-item>
      <el-form-item label="请选择省份" prop="adminCode" size="small" v-if="labelVal === '3'">
        <el-select v-model="form.adminCode" filterable multiple placeholder="请选择省份" @change="changeLevel">
          <el-option
            v-for="item in byLevelList"
            :key="item.adminCode"
            :label="item.adminName"
            :value="item.adminCode">
          </el-option>
        </el-select>
        <span class="color-red">(省份控件,支持检索,可多选)</span>
      </el-form-item>
      <el-form-item label="请选择城市" prop="adminCode" size="small" v-if="labelVal === '4'">
        <el-select v-model="form.adminCode" filterable multiple placeholder="请选择城市" @change="changeLevel">
          <el-option
            v-for="item in byLevelList"
            :key="item.adminCode"
            :label="item.adminName"
            :value="item.adminCode">
          </el-option>
        </el-select>
        <span class="color-red">(城市控件,支持检索,可多选)</span>
      </el-form-item>
          <el-form-item>
        <el-button type="primary" @click="onSubmit">确定</el-button>
        <el-button @click="backToList">取消</el-button>
      </el-form-item>
</el-form>

数据文章来源地址https://www.toymoban.com/news/detail-729272.html

<script>
export default {
  data () {
    const validatePass = (rule, value, callback) => { //自定义规则校验
      if (value.length > 0) {
        callback()
      } else {
        if (this.labelVal === '3') {
          callback(new Error('请输入省份'))
        } if (this.labelVal === '4') {
          callback(new Error('请输入城市'))
        }
      }
    }  
      
    return{
        byLevelList: [],
        labelVal: '3',
        form:{
           adminName: [],
           adminCode: [],
        },
        rules: {
            name: [
              { required: true, message: '请选择任务', trigger: 'change' }
            ],
            adminCode: [ // validator  定义名字
              { validator: validatePass, trigger: 'blur' }
            ],            
        }
    },
   methods: {
    // 创建检查--提交
    onSubmit () {
      this.checkFormAdd()
    },
    // 创建检查--取消
    backToList () {
      this.$router.back(); //返回上一页
    },
    /**
     * 切换检查范围
     * @param {*} val  选中的检查范围
     */
    changeCheckRange (val) {
      this.labelVal = val
      let labelValList = ['3', '4']
      if (labelValList.includes(val)) {
        this.levelParam = Number(val) === 4 ? 2 : 1
        this.form.adminCode = []
        this.$nextTick(() => {
          this.$refs['ruleForm'].clearValidate();
        });
        this.getAllListByLevel()
      }
    },
    /**
     * 获取省份和城市
     *  @param {number} level  1-省份  2-城市
     *  @returns {any}
     */
    getAllListByLevel () {
      const param = {
        level: this.levelParam
      }
      ajax.NPGet('check_getAllListByLevel', param).then(res => {
        this.byLevelList = res
      })
    },
    /**
     * 切换省份或城市
     * @param {Int} val  选中的省份或城市
     */
    changeLevel (val) {
      this.form.adminName = []
      this.byLevelList.forEach(el => {
        val.forEach(item => {
          if (item === el.adminCode) {
            this.form.adminName.push(el.adminName)
          }
        })
      })
    },
    /**
     * 创建检查
     * @param {object} param  form表单
     * @returns {*}
     */
    checkFormAdd () {
      // ruleForm-定义的ref   valid-必填项没有填,不调接口  输入后,进行保存提交
      this.$refs.ruleForm.validate(valid => {
        if (!valid) return false;
        let param = this.form
        checkAdd(param).then((res) => {
          this.$message.success('新增成功!');
          this.$router.back();
        }, err => {
          this.$message.error('新增失败!');
        });
      })
    },
  }
}
</script>

到了这里,关于element UI —— form表单中Radio单选框进行切换 & 表单验证rule动态校验-validator & 保存前进行form表单校验后才能上传-validate的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • element ui 多选框内嵌套单选框

    多选框内嵌套单选框

    2024年02月10日
    浏览(26)
  • element-ui 改变单选框,多选框的选中颜色

    @element-ui 改变单选框,多选框的颜色 注意 是写在less文件中,并在vue.config.js中配置

    2024年02月12日
    浏览(34)
  • Elementui Radio单选框取消选中

            最近开发一个后台项目的时候用到了单选框,而客户的要求是默认选择一个选项,然后 点击可以取消选中 。不想自己在手写一个Radio组件,只能在elementui的单选框上修改一下下啦。 .native的作用是在给组件添加修饰符时,将修饰符转为原生的按键修饰符。在使用组

    2024年02月02日
    浏览(32)
  • Element UI自定义被禁用(disabled)的单选框的样式

    在Element UI中,如果你想自定义被禁用(disabled)的单选框的样式,可以使用以下步骤: 1.使用 ::v-deep 或 /deep/ 选择器:  这样可以更改被禁用单选框的样式。 2.定义样式: 通过定义选择器来修改禁用状态下单选框的外观。以下是一些可能的CSS属性可以自定义: 确保在你的项目中

    2024年02月04日
    浏览(30)
  • 前端基于 radio 增强单选框组件

    前端基于radio增强单选框组件, 下载完整代码请访问uni-app插件市场地址:https://ext.dcloud.net.cn/plugin?id=12977 效果图如下:         # #### 使用方法 ```使用方法 !-- radioData:单选数据 curIndex:当前选择序列 @change:单选事件 -- ccRadioView :radioData=\\\"items\\\" :curIndex=\\\"current\\\" @change=\\\"radioChange\\\"/ccR

    2024年02月09日
    浏览(31)
  • el-radio单选框,取消选中

    1.背景:在公司开发需求中有一个选择颜色的单选框(黑色,白色),每种颜色选择后均支持取消选中,可是el-radio标签不支持取消选中。 2.解决: 方法1:  方法2:换checkbox,设置max=1即可

    2024年02月14日
    浏览(32)
  • element-ui的el-table表格复选框只能单选,不可多选

    element的el-table表格复选框只能选中一条,选择下一条,上一条去掉勾选。使用文档中select方法,el-table绑定一个ref。具体代码实现如下 toggleRowSelection:用于多选表格,切换某一行的选中状态,如果使用了第二个参数,则是设置这一行选中与否(selected 为 true 则选中) 

    2024年02月11日
    浏览(41)
  • Element UI 中使用el-cascader组件,可以选择任意一级的内容并取消单选框

    当加入checkStrictly后就会出现单选框的问题,修改样式即可;这里使用的less语法,需要有less依赖,加入样式后如果没有生效,可以放在App.vue中的样式下

    2024年02月04日
    浏览(38)
  • element UI 中的 el-tree 实现 checkbox 单选框功能,及 bus 传递参数的方法

    el-tree 单选功能 在日常项目开发中,会经常遇到,树形结构的查询方式,为了快速方便开发,常常会使用到快捷的ui组件去快速搭树形结构,这里我用的是 element ui 中的 el-tree 。第一次接触这种功能的时候也是各种网站查询,虽然也都能实现功能,但是都会有一些小问题,就

    2024年04月10日
    浏览(32)
  • 将html的radio单选框自定义样式为正方形和对号

    将html的radio单选框自定义样式为正方形和对号 背景: 如何能把html的 input type=\\\"radio\\\" name=\\\"option\\\" 改成自定义的样式呢?比如想要把他变成正方形,选中的时候是对号。默认的样式太丑了 默认样式: 自定义样式: 实现代码

    2024年02月04日
    浏览(46)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包