<script type="text/x-jquery-tmpl" id="iconMapRowTPL">
(new CCol((new CDiv())->addClass(ZBX_STYLE_DRAG_ICON)))->addClass(ZBX_STYLE_TD_DRAG_ICON),
(new CSpan(':'))->addClass(ZBX_STYLE_LIST_NUMBERED_ITEM),
(new CSelect('iconmap[mappings][#{iconmappingid}][inventory_link]'))
->addOptions(CSelect::createOptionsFromArray($data['inventory_list']))
->setId('iconmap_mappings_#{iconmappingid}_inventory_link'),
(new CTextBox('iconmap[mappings][#{iconmappingid}][expression]', '', false, 64))
->setId('iconmap_mappings_#{iconmappingid}_expression')
->setWidth(ZBX_TEXTAREA_SMALL_WIDTH),
(new CSelect('iconmap[mappings][#{iconmappingid}][iconid]'))
->addOptions(CSelect::createOptionsFromArray($data['icon_list']))
->setId('iconmap_mappings_#{iconmappingid}_iconid')
->addClass('js-mapping-icon'),
(new CImg('imgstore.php?iconid='.$data['default_imageid'].'&width='.ZBX_ICON_PREVIEW_WIDTH.
'&height='.ZBX_ICON_PREVIEW_HEIGHT, _('Preview'))
->setAttribute('data-image-full', 'imgstore.php?iconid='.$data['default_imageid'])
->addClass(ZBX_STYLE_CURSOR_POINTER)
))->addStyle('vertical-align: middle'),
(new CButton('remove', _('Remove')))
->addClass(ZBX_STYLE_BTN_LINK)
->addClass('remove_mapping')
))->addClass(ZBX_STYLE_NOWRAP)
]))->setId('iconmapidRow_#{iconmappingid}')
<script type="text/javascript">
var $form = $('form#iconmap');
$form.on('submit', function() {
$form.trimValues(['#iconmap_name']);