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"
/>

注意最后的选择菜单项字段的 showon="custom_login:1[AND]custom_type:menuitem"

  • 两个字段中有一个条件成立,那么可以使用[OR]链接。如: showon="foo:1[OR]bar:1".
  • 通过使用!: 可以实现不等于的判断。如: showon="field1!:1"
  • 实现一个字段有值即可(无论值为多少,不为空就行)。可以使用showon="foo!:" 

showon属性不起作用的解决方案


遇到诸如showon属性根本无法使用的问时候, 你的可以尝试使用 renderField() 方法来输出.字段 代码如下:

<div class="row-fluid">
    <div class="span6">
        <?php 
            foreach($this->form->getFieldset() as $field) {
                echo $field->renderField();        
            }
        ?>
    </div>
</div>
 

评论 (0)

  • 最新在前
  • 最佳在前