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

Discussion in 'Модернизация расширений' started by Вадим91, Oct 28, 2020.

Tags:
  1. Offline

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

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

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

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

    Joined:
    Oct 30, 2018
    Messages:
    10
    Likes Received:
    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>
    Отредактировал.М.
     
    Last edited by a moderator: Dec 5, 2020
  4. OlegK
    Offline

    OlegK Russian Joomla! Team Staff Member ⇒ Профи ⇐

    Joined:
    Jan 17, 2011
    Messages:
    7,812
    Likes Received:
    771
    Gender:
    Male
    Код (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" ,у меня так в модуле поиска и обработчик события Энтер, нет кнопки для поиска
    И совет- пользуйся тегами редактора для кода
     

    Attached Files:

    Вадим91 likes this.

Share This Page

Loading...