Joomla showon 属性
showon属性是表单字段的通用属性,作用就是通过表单中其他字段的值来决定当前字段是否显示。
基于一个字段的判断
下面的代码实现当自定义登录页字段设置为1时,登录页类型才会展示出来:
<field name="custom_login"
type="radio"
class="btn-group btn-group-yesno"
label="自定义登录页"
description=""
default="0"
>
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="custom_type"
type="list"
label="登录页类型"
description=""
default="menuitem"
showon="custom_login:1"
>
<option value="menuitem">菜单项</option>
<option value="url">自定义URL</option>
</field>
通过在登陆页类型字段增加showon属性,将其值设置为 custom_login:1 来实现。 如果想匹配custom_login 的多个值,那么可以使用逗号分隔。如:showon="custom_login:1,2"
基于多个字段的判断
如果需要同时基于多个字段的值才能判断是否显示。那么可以使用[AND]链接多个字段来实现
下面的代码展示了只有当 自定义登录页设置为1且登陆页的类为menuitem时才会显示 登录菜单字段。
<field name="custom_login"
type="radio"
class="btn-group btn-group-yesno"
label="自定义登录页"
description=""
default="0"
>
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="custom_type"
type="list"
label="登录页类型"
description=""
default="menuitem"
showon="custom_login:1"
>
<option value="menuitem">菜单项</option>
<option value="url">自定义URL</option>
</field>
<field name="custom_menuitem"
type="menuitem"
label="选择菜单项"
description="重定向到该页面"
showon="custom_login:1[AND]custom_type:menuitem"
/><br><br>
注意最后的选择菜单项字段的 showon="custom_login:1[AND]custom_type:menuitem"
- 两个字段中有一个条件成立,那么可以使用[OR]链接。如: showon="foo:1[OR]bar:1".
- 通过使用!: 可以实现不等于的判断。如: showon="field1!:1"
- 实现一个字段有值即可(无论值为多少,不为空就行)。可以使用showon="foo!:"
showon属性不起作用的解决方案
遇到诸如showon属性根本无法使用的问时候, 你的可以尝试使用 renderField() 方法来输出.字段 代码如下:
<divclass="row-fluid">
<divclass="span6">
<?php
foreach($this->form->getFieldset()as $field) {
echo $field->renderField();
}
?>
</div>
</div>