Шпаргалка. Textarea в настройках компонента через параметр CUSTOM
Запись от 20.11.2015
Понадобилось в настройках компонента добавить textarea.
Выкладываю краткую инструкцию, как это сделать.
В .parameters.php добавляем
Затем в settings.js можно написать вот так:
А вот и результат:
P.S. Для данной задачи есть способ проще, в настройках компонента указать:
Выкладываю краткую инструкцию, как это сделать.
В .parameters.php добавляем
$arTemplateParameters = Array(
...
"TEXT_INTRO" => Array(
"PARENT" => "DATA_SOURSE",
"NAME" => "Вступительный текст",
"TYPE" => "CUSTOM",
"JS_FILE" => "/путь/к/файлу/settings.js",
"JS_EVENT" => "OnTextAreaConstruct",
"DEFAULT" => null,
),
...
);
Затем в settings.js можно написать вот так:
function OnTextAreaConstruct(arParams) {
var iInputID = arParams.oInput.id;
var iTextAreaID = iInputID + '_ta';
var obLabel = arParams.oCont.appendChild(BX.create('textarea', {
props : {
'cols' : 40,
'rows' : 5,
'id' : iTextAreaID
},
html: arParams.oInput.value
}));
$("#"+iTextAreaID).on('keyup', function() {
$("#"+iInputID).val($(this).val());
});
}
А вот и результат:
P.S. Для данной задачи есть способ проще, в настройках компонента указать:
"PARAM" => array(
"PARENT" => "BASE",
"NAME" => "Param",
"TYPE" => "STRING",
"ROWS" => "10",
"COLS" => "50",
"DEFAULT" => "",
),