跳至主要内容
版本:5.1

复选框表单字段

复选框表单字段类型提供一组复选框。

  • type(必填)必须为checkboxes
  • name(必填)是字段的唯一名称。
  • label(必填)(可翻译)是字段的HTML标签。
  • option(必填)包含复选框定义。
  • checkedOptions(可选)是已选中复选框值的逗号分隔列表。
  • description(可选)(可翻译)是字段描述
  • class(可选)允许您设置用于显示的CSS类。
  • multiple(可选)如果设置为true,则允许同时选择多个项目。设置为false以允许单选。

由以下文件实现:libraries/src/Form/Field/CheckboxesField.php

XML参数定义示例

<field 
name="toppings"
type="checkboxes">
<option value="anch">Anchovies</option>
<option value="chor">Chorizo</option>
<option value="on">Onions</option>
<option value="mush">Mushrooms</option>
</field>
警告

与大多数标准表单字段类型(例如文本字段或复选框)不同,此字段不是“开箱即用”的解决方案。它将为您创建复选框,并以数组的形式提交其值,但您需要进一步操作才能将返回的数据存储到数据库中。

示例

<field
name="toppings"
type="checkboxes">
<option value="anch">Anchovies</option>
<option value="chor">Chorizo</option>
<option value="on">Onions</option>
<option value="mush">Mushrooms</option>
</field>

可以使用以下单个语句在表单中生成复选框集

<?php echo $this->form->getInput('toppings'); ?>

这将生成以下HTML,可以使用CSS对其进行样式设置

<fieldset id="jform_toppings" class="checkboxes">
<ul>
<li><input type="checkbox" id="jform_toppings0"
name="jform[toppings][]" value="anch" /><label for="jform_toppings0">Anchovies</label></li>
<li><input type="checkbox" id="jform_toppings1"
name="jform[toppings][]" value="chor" /><label for="jform_toppings1">Chorizo</label></li>
<li><input type="checkbox" id="jform_toppings2"
name="jform[toppings][]" value="on" /><label for="jform_toppings2">Onions</label></li>
<li><input type="checkbox" id="jform_toppings3"
name="jform[toppings][]" value="mush" /><label for="jform_toppings3">Mushrooms</label></li>
</ul>
</fieldset>

如果用户选中第二项和第四项并提交表单,Joomla服务器将提供以下结果

print_r(JRequest::getVar('jform')['toppings']) =>

Array
(
[0] => chor
[1] => mush
)