Смотрим как создает html для инпата radio стандартный компонент (компонент? html? да):
Код |
---|
$input = CForm::GetRadioField(
$FIELD_SID,
$arAnswer["ID"],
$value,
$arAnswer["FIELD_PARAM"]);
if (strlen($ans_id) > 0)
{
$res .= $input;
$res .= "<label for=\"".$ans_id."\">".$arAnswer["MESSAGE"]."</label>";
}
else
{
$res .= "<label>".$input.$arAnswer["MESSAGE"]."</label>";
}
|
А как рендерит CForm::GetRadioField? Да это просто обертка над InputType, где:
Код |
---|
$bLabel = false;
if ($strType == 'radio')
$bLabel = true;
return ($bLabel? '<label>': '').'<input type="'.$strType.'" '.$field1.' name="'.$strName.'" id="'.($strId <> ''? $strId : $strName).'" value="'.$strValue.'"'.
($bCheck? ' checked':'').'>'.($strPrintValue? $strValue:$strPrint).($bLabel? '</label>': '');
|
Что в итоге? Вот что:
Код |
---|
<label><input type="radio" id="80" name="form_radio_PALEPE" value="80"></label><label for="80">ne</label>
|
Что? Два label? Ну да.
Блин, в кои-то веки решил опять попробовать воспользоваться стандартным выводом форм. Думал 2016 год, ну точно формы в битрикс должны быть готовы для практического использования... Не. Рендер до сих пор невозможены через какие-нибудь собственные шаблоны полей. Встроенные рендерят непременимый ужос.
Зато автокомпозит.
Извините - накипело.