
# 下拉框
下拉框通过配置绑定选项内容，提供给用户进行下拉选择的操作，支持单选、多选、搜索，以及键盘快捷操作。
在标准页面设计界面，从"基本组件 \> 表单"中，拖拽"下拉框"组件至页面工作区域，如[图1]。
图1下拉框   
![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001960287461.png "点击放大")
#### 查看组件帮助
将鼠标放在对应的组件上，单击![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001960287449.png)，可查看组件说明。
图2查看组件说明   
![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001932888944.png)
#### 属性
- 数据绑定：通过建立不同类型的视图模型，将各种数据源和组件的返回值或者属性值进行关联，实现动态数据效果。
  - 值绑定：设置组件绑定的数据模型，数据模型一般有以下几种。更多介绍，请参见[值绑定](https://support.huaweicloud.com/usermanual-astrozero/astrozero_05_0048.html#astrozero_05_0048__section1786195310514)。
    - 自定义：由用户自定义的前端模型，可以在模型树上快速创建自定义字段。
    
    - 对象：由后台对象模型映射创建，支持选择字段。
    
    - 服务：由后台服务的出入参数模型创建，分别生成inputParam和outputParam节点。
    
    - 事件：由后台事件的字段映射创建，并且支持websocket刷新模型数据。
     
  
  - 属性值绑定，用于对该组件所有属性的动态设置。当某一属性被动态绑定时，以绑定值为准。更多介绍，请参见[属性绑定](https://support.huaweicloud.com/usermanual-astrozero/astrozero_05_0048.html#astrozero_05_0048__section1923073313920)。
   
- 基本属性：基本属性通过数据绑定后，在运行时以数据绑定的值为准。
  - 标签：下拉框的显示标签名称，只有下拉框放在表单form中才生效。
  
  - 占位符：下拉框未选择时，展示给用户的提示信息。
  
  - 选项：下拉框单击后，可选择的选项内容。若"属性值绑定"中，设置了"选项"与模型字段绑定。预览页面时，优先以"属性值绑定"为准，显示选项内容。
    ```
    输入的数据必须为json格式，如：
    [{"value": "1","display": "男"},{"value": "0","display": "女"}]
    ```
    
  
  - 选项列表：单击![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001960127657.png)，选择系统中配置的选项列表。选项和选项列表，只能配置其中一种。
    若"属性值绑定"中，设置了"选项"与模型字段绑定。预览页面时，优先以"属性值绑定"为准，显示选项内容。
    
  
  - 选项值唯一：选项值是唯一标识，开启后提升渲染性能。
  
  - 是否多选：配置下拉框是否提供多选的能力。
  
  - 可清空：是否在选择下拉框，显示一个删除图标，来删除选择框的内容。
  
  - 弹层独立：选项值区域展示不全，部分内容隐藏时，开启后，可显示完整选项值。
  
  - 可过滤：下拉框是否提供过滤能力。
  
  - 远程搜索：是否根据输入的关键字，调用自定义的接口查询数据，和事件"on-remote-search"配合使用。
  
  - 是否初始加载：拉框是否初始加载。
  
  - AUI风格：启用后，下拉框的下拉图标风格会有所不同。
  
  - 最大宽度：组件的最大宽度。
   
- 表单校验：当组件在表单中时，可对组件进行一些校验配置。当且仅当组件在表单中时，校验才生效。
  - 必填：是否设置为必须填入值。
  
  - 必填错误信息：在绑定了对象模型且下拉框放置于表单组件中，当设置必填时，输入值为空的情况下，提示的错误信息。
  
  - 自定义校验：是否进行自定义校验，打开后需要设置校验JS代码。当输入框在表单组件中，该设置才会生效。
  
  - 校验方法：输入JS代码定义校验规则，代码的返回值必须为布尔类型或者对象类型。
    - 布尔类型：返回为"false"表示未通过校验，即校验失败，若需要配置错误提示信息，则直接设置界面上"校验错误信息"参数；返回值为"true"，表示通过校验。
    
    - 对象类型：返回为"{result:false, message:'*对应错误提示信息*'}"，表示未通过校验，message值为错误提示信息；返回为"{result:true}"，表示校验通过，一般不用带提示信息。
    
    
    示例如下：
    - 示例1：校验输入下拉框选项内容长度不能超过10个字符。
      ```
      return value.length <= 10
      ```
      其中，"value"变量为系统已定义好的，表示输入内容变量，可直接使用该变量。
      
    
    - 示例2：校验下拉框选项内容只能是大写的A-Z，或者小写的a-z。
      返回值类型为布尔：
      ```
      var reg = new RegExp("^[A-Za-z]+$");
      return reg.test(value);
      ```
      返回值类型为对象：
      ```
      var reg = new RegExp("^[A-Za-z]+$");
      if (reg.test(value)) {
       return true;
      } else {
        return {result: false, message:'内容不符合规则，只能是大写的A-Z，或者小写的a-z'};
      }
      ```
      
     
  
  - 校验错误信息：自定义校验失败时，提示的错误信息。
   
- 公共
  - 控件名称：当前组件的名称。
  
  - 隐藏：是否隐藏该组件，此方式为静态配置该组件的隐藏。还可以将该组件属性值"隐藏"配置为布尔类型模型字段，在自定义JS代码中来控制模型字段取值，从而设置该组件是否隐藏，这种动态设置优先级是最高的。
  
  - 禁用：是否禁用该组件。
  
  - 只读：值是否只读。
   
- 样式 \> 高级设置 \> 样式类：当前组件使用的CSS样式类名，可在CSS代码中进行引用。
 
#### 事件
在事件中，显示了组件暴露出来的一些常用事件，供用户实现，来扩展组件的交互。整个页面有加载（on-load）事件，该事件在页面渲染完成后执行，可进行数据初始化操作。更多关于事件的介绍，请参见[主要事件说明](https://support.huaweicloud.com/usermanual-astrozero/astrozero_05_0089.html)。
图3事件   
![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001960287465.png)
#### 库
在库中，可配置页面需要的依赖库，扩展页面功能。库分为系统预置库和自定义库两种，更多介绍请参见[如何引入第三方库](https://support.huaweicloud.com/usermanual-astrozero/astrozero_05_0058.html)。
