跳至主要内容
版本:5.1

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参数定义示例

这是两个列表字段fieldafieldb的定义,其中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”始终显示。

另请参阅