Как я могу изменить минимальные/максимальные значения подчиненной формы Joomla3.9 в php или javascript?

У меня есть форма Joomla (версия 3.9.4, важная для подчиненной формы, но как новичок, я не могу добавить создание тега Joomla3.9) с полем с типом, установленным на «список», и подчиненной формой с минимальным и максимальным значением, оба установлены на «6». Подформа имеет 1 тип поля «календарь». Итак, я вижу список (с 3 вариантами) и подчиненную форму с 6 элементами выбора даты. Теперь я хочу изменить минимальное и максимальное значение в зависимости от параметра списка. Как я могу это сделать? В PHP? Или в яваскрипте?

Я попытался найти минимальные/максимальные значения в DOM, используя Javascript/jQuery, чтобы найти данные-минимум и данные-максимум, но тогда элементы уже были сгенерированы, так что это слишком поздно.

Вот форма.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, чтобы отобразить соответствующее количество средств выбора даты в зависимости от выбранного параметра типа. Что-то похожее на демонстративное поведение или его продолжение. Еще не там. Любые указатели/помощь очень ценятся.

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
69
2

Ответы 2

В Joomla нет надлежащего способа сделать это. Чтобы пользователи могли добавлять или удалять средства выбора даты, не устанавливайте минимальные/максимальные значения, позвольте им создать столько, сколько им нужно, вручную, как по умолчанию предусмотрено в подчиненных формах Joomla.

Это можно сделать в Модели, метод getForm

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

Другие вопросы по теме