【问题标题】:How can I change Joomla3.9 subform min/max values in php or javascript?如何在 php 或 javascript 中更改 Joomla3.9 子表单的最小/最大值?
【发布时间】:2019-08-23 11:13:27
【问题描述】:

我有一个 Joomla(版本 3.9.4,对子表单很重要,但作为新手,我无法添加创建 Joomla3.9 标记)表单,其中字段类型设置为“列表”,子表单具有最小值和最大值,两者都设置为“6”。该子表单有 1 个字段类型“日历”。 所以我看到了列表(带有 3 个选项)和带有 6 个日期选择器项目的子表单。 现在我想要的是根据列表的选项更改最小值和最大值。我怎样才能做到这一点?在 PHP 中?还是在 Javascript 中?

我尝试使用 Javascript/jQuery 查找 DOM 中的最小值/最大值以找到数据最小值和数据最大值,但随后项目已经生成,所以为时已晚。

这是 form.xml:

<?xml version="1.0" encoding="UTF-8" ?>
<form>
    <fieldset>
        <field name="type" type="list" default="" label="type" >
            <option value="0">Type A</option>
            <option value="1">Type B</option>
            <option value="2">Type C</option>
        </field>
        <field
            name="dates"
            type="subform"
            required="true" 
            label="Dates"
            multiple="true"
            min="6"             <= This is what I want to change based on what was selected in the list
            max="6"             <= This is what I want to change based on what was selected in the list
        >
            <form>
                <field
                    name="date"
                    type="calendar"
                    label="Date"
                    default=""
                />
            </form>
        </field>
    </fieldset>
</form>

这是渲染它的 php 部分:

<?php
defined('_JEXEC') or die('Restricted access');

JHtml::_('behavior.tooltip');
JHtml::_('behavior.formvalidation');
JHtml::_('formbehavior.chosen', 'select');
?>
<form action="<?php echo JRoute::_('index.php?option=com_mycom&view=types&layout=edit&id='.(int) $this->item->id); ?>" method="post" name="adminForm" id="edit-form" class="form-validate" enctype="multipart/form-data">
    <fieldset>
        <?php echo $this->form->getField('type')->renderField(); ?>
        <?php echo $this->form->getField('dates')->renderField(); ?>
    </fieldset>
</form>

我正在调查 2 条路径: 1.子类添加控件以更改最小/最大值。不确定这是否可以工作,因为用户更改类型是在 php 生成表单之后发生的。因此,只有在每次更改类型后都重新加载时,这才有效。不喜欢这样,并破坏了默认的 Joomla 表单行为。 2. 添加 Javascript 代码,然后根据选择的类型选项显示适当数量的日期选择器。与showon行为相似或延伸的东西。还没有。非常感谢任何指针/帮助。

【问题讨论】:

    标签: javascript php joomla3.5


    【解决方案1】:

    在 Joomla 中没有适当的方法来做到这一点。 对于用户添加或删除日期选择器,不要设置最小/最大值,让他们手动创建所需数量,默认情况下在 Joomla 子表单中提供

    【讨论】:

      【解决方案2】:

      可以在Model中做,方法getForm

      $form->setFieldAttribute( 'dates', 'min', 'your value' );
      

      【讨论】:

        猜你喜欢
        • 2013-04-17
        • 2014-04-17
        • 1970-01-01
        • 2010-11-25
        • 1970-01-01
        • 2011-12-22
        • 1970-01-01
        • 2018-09-27
        • 1970-01-01
        相关资源
        最近更新 更多