List表单字段
**列表**表单字段类型提供了一个自定义条目下拉列表或列表框。如果字段具有保存的值,则在页面首次加载时将选择此值。如果没有,则选择默认值(如果有)。
- **type**(必填)必须为list。
- **name**(必填)是字段的唯一名称。
- **label**(必填)(可翻译)是字段的HTML标签。
- **description**(可选)(可翻译)是字段描述。
- **class**(可选)是HTML表单字段的CSS类名。如果省略,则默认为'inputbox'。
- **multiple**(可选)如果设置为true,则允许同时选择多个项目。设置为false以允许单选。
- **required**(可选)如果设置为true,则第一个字段选项应为空,请参见最后一个示例。
- **useglobal**(可选)如果设置为true,则如果在数据库中找到,它将显示在全局配置中设置的值。
由以下文件实现:libraries/src/Form/Field/ListField.php
XML <field>
元素必须包含一个或多个<option>
元素,这些元素定义列表项。<option>
和</option>
标签之间的文本将显示在下拉列表中,并且是可翻译的字符串。<option>
标签采用以下参数
- **value**(必填)如果选择此项,则将为此字段保存的值。
- **requires**(可选)值:可以使用multilanguage、associations和adminlanguage。
提示:不要忘记使用</field>
关闭字段定义。
提示:首先添加一个没有值的选项,并使用类似“选择一个选项”的文本。否则,如果需要字段,则第一个有值的选项会被静默选择(即,用户没有选择它)。此文本通常会在用户单击下拉列表之前显示给他们。
提示:某些“name”字段的值是保留的,因此请勿使用它们并避免出现问题。其中之一是:“style”。
响应将是一个数字数组,其中元素是所选选项的值。未选择的选项将不会出现在数组中。
XML参数定义示例
<field
name="mylistvalue"
type="list"
default=""
label="Select an option"
description="">
<option value="">Please Select</option>
<option value="0">Option 1</option>
<option value="1">Option 2</option>
</field>
带有必填值的XML参数定义示例
<field
name="mylistvalue"
type="list"
default=""
required="true"
label="Select an option"
description="">
<option value="">Please Select</option>
<option value="0">Option 1</option>
<option value="1">Option 2</option>
</field>
列表选项的showon属性
从Joomla 3.9.0开始,可以在列表字段中的option
标签中使用showon属性。
此功能是在Pull Request #18998中引入的。
带有showon的XML参数定义示例
这是两个列表字段fielda
和fieldb
的定义,其中fieldb
的显示选项由fielda
中的选择控制
<field
name="fielda"
type="list"
label="FIELDA_LABEL"
description="FIELDA_DESC"
>
<option value="editor">TYPE_EDITOR</option>
<option value="text">TYPE_TEXT</option>
<option value="textarea">TYPE_TEXTAREA</option>
</field>
<field
name="fieldb"
type="list"
label="FIELDB_LABEL"
description="FIELDB_DESC"
>
<option value="0">JNO</option>
<option value="1">Option 1</option>
<option
showon="fielda:text,textarea"
value="2">Option 2</option>
<option
showon="fielda:text"
value="3">Option 3</option>
</field>
- 仅当在
fielda
中选择选项“TYPE_TEXT”时,才会显示fieldb
的“选项3”。 - 仅当在
fielda
中选择“TYPE_TEXT”或“TYPE_TEXTAREA”时,才会显示fieldb
的“选项2”。 fieldb
的“选项1”和“JNO”始终显示。