codecamp

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>


Joomla 子表单
Joomla 模板风格
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

处理URL请求参数

Joomla 错误和调试

Joomla 缓存

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }