КАК ЗАПРЕТИТЬ ВВОД ОДНОГО ЧИСЛА В ПОИСКЕ JOOMLA

Тема в разделе "Модернизация расширений", создана пользователем Вадим91, 28.10.2020.

Метки:
  1. Offline

    Вадим91 Недавно здесь

    Регистрация:
    30.10.2018
    Сообщения:
    10
    Симпатии:
    0
    Задача - настроить стандартный поиск joomla, что бы он осуществлял поиск по двум условиям
    - Только по числам
    - Количество вводимых чисел должно быть от 10 до 15.
    Что я сделал
    1. Изменил тип поля input - number в компоненте и модуле
    2. Изменил ограничение по лимиту в файле локализации
    Все бы ничего, но появился одна ошибка.
    Если вводить один число 0 то поиск начинает выдавать результат. Самое интересное если другие цифры ввожу поиск выполняет поставленные условия, то есть выдает ошибку. что количество символов должно быть от 10 до 15

    Пытался устанавливать условия на поиск через pattern. min, и другие настройки поля input. Все безуспешно. Поиск срабатывает при 0.
    Вопрос к специалистам
    Подскажите как ограничить ввод одного числа в поле input?
     
  2.  
  3. Offline

    Вадим91 Недавно здесь

    Регистрация:
    30.10.2018
    Сообщения:
    10
    Симпатии:
    0
    Переформулирую вопрос
    Добрый день! Нашел ошибку валидатора. Необходим совет специалиста.

    Задача.
    Стандартными средствами joomla сделать валидацию формы поиска по следующим обязательным параметрам
    - только число
    -количество вводимых знаков от 10 до 15

    Использую стандартную валидацию joomla docs.joomla.org/Client-side_form_validation
    Подключил файл и указанные классы. Все работает, проверка проходит

    При тестировании нашел особенность валидации. При вводе одного нуля (0) в поле input - поиск срабатывает.

    Вопросы к специалистам
    1. Это ошибка валидатора или так установлено по умолчанию?
    2. Как запретить ввод одного символа, а именно 0?

    информация о сайте
    joomla 3.9.23
    php 7.4.10

    Код
    Код (html):
    1. <form id="searchForm" action="<?php echo JRoute::_('index.php?option=com_search'); ?>" method="post" class=" form-validate">
    2.  
    3.   <div class="btn-toolbar">
    4.      
    5.           <div class="btn-group pull-left">
    6.          
    7.           <label for="search-searchword" class="element-invisible">
    8.                 <?php echo JText::_('COM_SEARCH_SEARCH_KEYWORD'); ?>
    9.             </label>
    10.          
    11.              <input type="text" name="searchword" title="<?php echo JText::_('COM_SEARCH_SEARCH_KEYWORD'); ?>" placeholder="<?php echo JText::_('COM_SEARCH_SEARCH_KEYWORD'); ?>" id="search-searchword" size="30"  maxlength="<?php echo $upper_limit; ?>" value="<?php echo $this->escape($this->origkeyword); ?>" class="inputbox required  validate-numeric" />
    12.         </div>
    13.  
    14.            <div class="btn-group pull-left">
    15.             <button name="Search" onclick="this.form.submit()" class="btn hasTooltip validate" title="<?php echo JHtml::_('tooltipText', 'COM_SEARCH_SEARCH');?>">
    16.                 <span class="icon-search"></span>
    17.                 <?php echo JText::_('JSEARCH_FILTER_SUBMIT'); ?>
    18.             </button>
    19.      
    20.                
    21.      </div>
    Отредактировал.М.
     
    Последнее редактирование модератором: 05.12.2020
  4. OlegK
    Offline

    OlegK Russian Joomla! Team Команда форума ⇒ Профи ⇐

    Регистрация:
    17.01.2011
    Сообщения:
    7 812
    Симпатии:
    771
    Пол:
    Мужской
    Код (html):
    1. <script>jQuery(function() {
    2.   jQuery('.form-inline input').on('keydown', function(e) {
    3. if(e.keyCode === 13 ) {
    4.     if(jQuery(this).val() == 0) {
    5.       jQuery('.form-inline').append('<p>Ноль не допускается для поиска</p>');
    6.       return false;
    7.     }
    8. }
    9.   });
    10. });</script>

    Добавь класс для элемента формы class="form-inline" ,у меня так в модуле поиска и обработчик события Энтер, нет кнопки для поиска
    И совет- пользуйся тегами редактора для кода
     

    Вложения:

    Вадим91 нравится это.

Поделиться этой страницей

Загрузка...