Как добавить плейсхолдеры в форму?

ЕСТЬ РЕШЕНИЕ ЗАКРЫТО InstantCMS 2.X
#1 31 августа 2018 в 18:26
Здравствуйте,
создал форму с полями, подскажите, как добавить placeholder к полям, например

  1. new fieldText('description', array(
  2. 'title' => 'Описание',
  3. 'options' => array(
  4. 'min_length' => '0',
  5. 'max_length' => '4000'
  6. )
  7. )),
#2 31 августа 2018 в 18:49
А случайно
'hint' => LANG_ITEM

не оно?
#3 31 августа 2018 в 18:55
Jestik, Не ) плейсхолдер — это подсказка внутри поля.

Вот
Иллюстрация
#4 31 августа 2018 в 20:33
С помощью js.
#5 31 августа 2018 в 21:19


С помощью js.

Lora

Типа
document.getElementById('description').placeholder = 'Нужный текст'; ?

Я вот хотел бы на пхп. Как hint прописывается — было бы идеально
#6 1 сентября 2018 в 14:51
Azami, добавьте атрибут 'placeholder':
  1. new fieldText('description', array(
  2. 'title' => 'Описание',
  3. 'attributes' => array(
  4. 'placeholder' => 'Текст плейсхолдера'
  5. ),
  6. 'options' => array(
  7. 'min_length' => '0',
  8. 'max_length' => '4000'
  9. )
  10. )),
#7 1 сентября 2018 в 23:11
WebMan, этот метод точно рабочий? у меня не сработал…
#8 1 сентября 2018 в 23:20

этот метод точно рабочий?

Azami
Да, при выводе формы в поле подставляются все пары ключ-значение из массива атрибутов. Только что проверил в формах регистрации и восстановления пароля — для полей типа String работает.
В коде нужно добавлять массив атрибутов
  1. 'attributes' => array(
  2. 'placeholder' => 'Текст плейсхолдера'
  3. ),
#9 1 сентября 2018 в 23:32
Только что посмотрел код полей. В поле String атрибуты из описания формы подставляются, а в поле Text — нет. Нужно просить Игоря (Fuze), чтобы он добавил поддержку атрибутов и в текстовом поле тоже.
#10 2 сентября 2018 в 11:59
WebMan, значит я что-то не так сделал. Помимо этого куска кода, где-то что-нибудь прописывать еще нужно при создании формы?
#11 2 сентября 2018 в 12:07
Смотрите мой предыдущий комментарий. У Вас поле типа Text, в него атрибуты не подставляются. В данный момент подстановка атрибутов (в том числе и плейсхолдера) возможна только для поля типа String.
#12 2 сентября 2018 в 16:13
WebMan, прочел. Вроде в string и вставляю.

  1. new fieldString('title', array(
  2. 'title' => 'Заголовок',
  3. 'attributes' => array(
  4. 'placeholder' => 'Текст плейсхолдера'
  5. ),
  6. 'rules' => array(
  7. array('required')
  8. ),
  9. 'options' => array(
  10. 'min_length' => '0',
  11. 'max_length' => '255'
  12. ),
  13. 'default'=>isset($_GET["key"])?htmlspecialchars(strip_tags($_GET['key'])):''
  14. )),
  15.  
  16.  
Инспектирую элемент — плейсхолдер отсутствует.

  1. <div id="f_title" class="field ft_string">
  2. <label for="title">Заголовок</label>
  3. <input type="text" class="input" name="title" value="" id="title" required="">
  4. </div>
#13 2 сентября 2018 в 16:23
Всё правильно. Только что добавил Ваш код в форму регистрации — плейсхолдер выводится.
Проверьте в коде страницы, подставляется ли 'placeholder' в input. И не выводится ли в этом инпуте какое-то невидимое значение (пробел, табуляция и т.п.), тогда плейсхолдер виден не будет.
#14 2 сентября 2018 в 16:31

Всё правильно. Только что добавил Ваш код в форму регистрации — плейсхолдер выводится.
Проверьте в коде страницы, подставляется ли 'placeholder' в input. И не выводится ли в этом инпуте какое-то невидимое значение (пробел, табуляция и т.п.), тогда плейсхолдер виден не будет.

WebMan

  1. <div id="f_title" class="field ft_string">
  2. <label for="title">Заголовок</label>
  3. <input type="text" class="input" name="title" value="" id="title" required="">
  4. </div>
#15 2 сентября 2018 в 16:38
WebMan, интересно, в форме регистрации тоже не отображается. А какая строчка и в каком файле отвечает за вывод атрибутов в поле string формы?
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.