Шаблон контейнера Joomla

В мобильной версии сайта пропадает надпись поля. В обычный все хорошо. В чем может быть проблема?

На втором снимке видно какой код отвечает за выполнение.

/public_html/components/com_foxcontact/helpers/fieldsbuilder.php Видим строчку // Insert an empty option

$result .= '<option value=""></option>';
// Build a Textarea field

    private function BuildTextareaField($key, &$field)

    {

        $this->CreateStandardLabel($field);



        $result = '<div class="control-group' . $this->TextStyleByValidation($field) . '">' . PHP_EOL .

            $this->LabelHtmlCode . PHP_EOL .

            '<div class="controls">' .

            "<textarea " .

            'rows="5" ' .

            'cols="30" ' .

            'name="' . $field['PostName'] . '" ' .

            'title="' . $field['Name'] . '" ' .

            $this->JSCode .

            ">" .

            $this->FieldValue . // Inner Text

            "</textarea>" .

            $this->DescriptionByValidation($field) .

            '</div>' . PHP_EOL . // controls

            '</div>' . PHP_EOL . // control-group

            PHP_EOL;



        return $result;



    }

Для компьютера нет проблем, при открывании на мобильнике проблемы. Тех поля не пишется

Как сделать чтобы работало как и на полной версии?

введите сюда описание изображения

введите сюда описание изображения


Ответы (2 шт):

Автор решения: VladykoD

попробуй проверять в сафари, если мобильный на ios. Потому что сафари частично на всех браузерах на ios, даже в хроме.

Я думаю, что у тебя что-то не то с областями видимости, попробуй backface-visibility: hidden или translateZ(0) или translate3d(0,0,0).

Также ошибка может быть в том, что что-то ломается в php на мобилке (старое по, например). Советую зайти в браузерстек и поковыряться там. Там есть консоль, можно попробовать разные варианты.

Также лучше всего прикрепить ссылку, потому что не до конца понятно в чём именно проблема, это только предположения.

→ Ссылка
Автор решения: Давид Манжула

Я код страницы easy-moving.ca/piano-movers-toronto, которую вы указали.

У вас используется плагин типа Select2 (но скорее всего не именно он). Он скрывает нативную выпадашку и заменяет своей. В теории он позволяет добавлять поле поиска по пунктам если их много, или подгружать пункты через ajax. Так же он позволяет кастомизировать оформление выпадающего меню.

код выпадающего меню

Почему-то вы добавили пустой пункт в выпадашку. На мобильном клиенте (кстати, на Windows 10 на Google Chome с емуляцией моб устройства баг тоже присутствует) этот плагин не запускается и соответственно, первый пункт пустой. А надпись на выпадающем меню - это выбранный пункт. На ПК плагин работает нормально и он убирает пустой пункт.


Предлагаемые решения:

  1. Отключить этот плагин вообще, а лейбл сделать над полем (кстати, ставить лейбл поля в самом поле - плохая практика, ведь после заполнения поля ее уже не видно и не понятно что это было за поле, особенно когда автозаполнения промазало).

  2. Отключить плагин вообще и добавить подпись к выпадающему меню как указано в этом ответе:

<select>
  <option value="" disabled selected>Select your option</option>
  <option value="hurr">Durr</option>
</select>

  1. Исправить плагин или заменить аналогичным.

Причина проблемы

Вооружившись дебаггерм, исследовал код страницы и нашел причину проблемы. На сайте используется плагин Chosen. Я посмотрел его код и обнаружил вот такой фрагмент:

Скриншот кода Chosen

Перед инициализацией плагина он проверяет, поддерживается ли браузер. А в функции проверки проверяется... не является ли он мобильным! Вот ссылка на место в исходном коде на GitHub: abstract-chosen.coffee:367.

Что делать с этим - решайте сами. Можно изменить js-файл, убрав проверку; можно поменять библиотеку.

→ Ссылка