# 字段显隐与禁用

# 场景

在某些表单中,需要根据一个表单字段的值,控制另外一个字段的显示与隐藏\禁用,常见的如问卷调查中,会根据性别或是年龄区别显示不同的问题。

# 调用api

语法 说明
this.sh.字段名=true/false 只控制字段的显示隐藏,设置为false表示当前字段隐藏,只是看不见,其实表单中依然存在
this.sh.字段名_load=true/false 控制字段的加载与否,设置为false表示当前字段不加载
this.sh.字段名_disabled=true/false 控制字段的禁用与否,设置为true表示当前字段禁用

# 示例

# 示例1.监听性别字段的改变事件,控制年龄字段的展示与否

onlChange() {
  return {
    sex(){
      if(event.value == '1'){
        this.sh.age_load = true
      }else{
        this.sh.age_load = false
      }
    }
  }
}

# 示例2.表单加载后,根据性别字段,控制年龄字段的展示与否

loaded(){
  if(this.isUpdate.value === true){
    //编辑页面判断性别的值
    let data = this.getFieldsValue();
    if(data.sex == '1'){
      this.sh.age_load = true
    }else{
      this.sh.age_load = false
    }
  }else{
    // 新增页面显示
    this.sh.age_load = true
  }
}

# 示例3.监听性别字段的改变事件,控制年龄字段的禁用与否

onlChange(){
  return {
    sex(){
      if(event.value == '0'){
        this.sh.age_disabled = true
      }else{
        this.sh.age_disabled = false;
      }
    }
  }
}
loaded(){
  if(this.isUpdate.value === true){
    //编辑页面判断性别的值
    let data = this.getFieldsValue();
    if(data.sex == '0'){
      this.sh.age_disabled = true
    }else{
      this.sh.age_disabled = false
    }
  }else{
    // 新增页面显示
    this.sh.age_disabled = false
  }
}