Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

внедрение javascript

00 голосов
4
Здраствуйте!!!
В форме добавления элементов инфо блоков необходимо ограничить колличество вводимых символов текста анонса и текста детального(причем не методом уменьшения полей в БД, т.к. пользователь вводит много, потом текст обрезается, необходимо просто не дать ему больше ввести)!!! реализовал это так:
в скрипте формы стоит проверка значения поля таблицы БД! если оно равно "T" по выводится поле <textarea>.причем для анонса и детального текста оно одинаково (выбирается case:"T";)создал case:"R", поставил проверку если значение $INPUT_TYPE="T" первый раз то оставляем "T", второй раз то присваиваем переменной $INPUT_TYPE="R"(все реализовано через if(думаю понятно как объяснять небуду!)).после вначале скрипта вставляю javascript (<script>скрипт гдето нашел который считает колличество введены символов, показывает сколько осталось</script>), и уже в каждом case вставляю операторы этого скрипта, в них прописываю максимальное колличество символов!всё прекрасно работает, но вот беда!включаю режим ajax и всё прекрасно перестает работать!
может я не правильно внедрис java в php? подскажите как это исправить?
спросил 25 Янв, 14 от 666KREVED (760 баллов)

4 Ответы

00 голосов
Ограничивающий яваскрипт можно повесить на onkeyup="iblock_preview_text_length_check(this)" соответствующего поля и проверять в iblock_preview_text_length_check длину введенного текста.
(описание здесь, таким же образом можно изменять логику не только форм свойств, но и других полей)

А если требуется защита от "хакеров", которые будут насильно впихивать длинные строки, обходя яваскрипт, надо будет еще контролировать/обрезать заполненные данные через "Файл для редактирования элемента, позволяющий модифицировать поля перед сохранением"
ответил 25 Май, 14 от Eddie (2,060 баллов)
00 голосов
Дмитрий Якинцев, я неоднократно рассматривал этот пример(ссылку на описание его вы дали) в документации для разработчиков!но немогу понять. вот есть форма iblock.element.add.form - она позволяет добавлять элементы, iblock.element.add.list - она выводит список добавленных мною элементов с сылками редактировать удалить добавить(конечно эти ссылки можно скрыть)!!!так вот вы в своём примере предлагаете взять файл для редактирования /bitrix/modules/iblock/admin/iblock_element_edit.php скопировать в другое место, изменить и в свойствах инфоблока прописать путь к этому файлу в поле "Файл с формой редактирования элемента".вот этот файл что нам заменит - iblock.element.add.form ? или iblock.element.add.form - это просто форма добавления, а /bitrix/modules/iblock/admin/iblock_element_edit.php обрабатывает данные после сохранения?
ответил 21 Сен, 14 от 666KREVED (760 баллов)
00 голосов
ну кто нибуть ответит как проверить привязалась iblock_element_edit.php? что оно меняет?
ответил 25 Янв, 15 от 666KREVED (760 баллов)
00 голосов
Этот файл заменит часть оригинального iblock_element_edit.php
Сценарий iblock_element_edit.php вызывается и для добавления и для изменения элемента иблока в админке /bitrix.
Если вам надо ограничивать ввод не в админке, а в компоненте (на странице сайта), проставляйте maxlength или onkeyup в соответствующем инпуте используемого шаблона компонента.
ответил 09 Май, 15 от Eddie (2,060 баллов)

Похожие вопросы

0 голосов
0 ответов
0 голосов
1 ответ
спросил 08 Дек, 16 от аноним
0 голосов
2 ответов
спросил 11 Апр, 14 от Kurt (100 баллов)
0 голосов
3 ответов
спросил 22 Март, 14 от Willow (300 баллов)
0 голосов
3 ответов
спросил 18 Март, 14 от WelMax (430 баллов)