Это проблема с jQuery, а не с Zend Framework.Обертывание элемента в теге label совершенно корректно, просто jQuery UI его не поддерживает.Я опубликовал отчет об ошибке .
* Обновление ответа *
Однако я думаю, что вы пытаетесь сделать (как вы прокомментировали)использовать набор кнопок jQuery UI, что я и делал, когда натолкнулся на ошибку jQuery UI.Короче говоря, у вас есть два варианта, пока ошибка не будет исправлена:
1) Используйте специальный помощник Денниса Д., чтобы переопределить элемент переключателя по умолчанию.
2) Патч Zend FrameworkРадиокнопка просмотра помощника с кодом написана Денисом Д.Он появляется в файле Zend_View_Helper_FormRadio в строке 169 (Zend Framework Version 1.11.0).
Во-первых, создайте новую метку и закройте тег
// Create the label
$label = '<label'
. $this->_htmlAttribs($label_attribs) . ' for="' . $optId . '">'
. (('prepend' == $labelPlacement) ? $opt_label : '')
. '<input type="' . $this->_inputType . '"'
. $opt_label
. '</label>';
Во-вторых, измените код, который создает радиоНажмите кнопку:
// Create the radio button
$radio = '<input type="' . $this->_inputType . '"'
В-третьих, удалите закрывающий тег метки (как вы уже это сделали) в помощнике вида, измените:
. $endTag
. (('append' == $labelPlacement) ? $opt_label : '')
. '</label>';
И просто замените на:
. $endTag;
Затем объедините радио и метку, используя позиционирование размещения:
// Combine the label and the radio button
if ('prepend' == $labelPlacement) {
$radio = $label . $radio;
} else {
$radio = $radio . $label;
}
И это все (снова Деннис D сделал это в помощнике вида), но измененный код долженвыглядеть (начиная со строки 169:
// Create the label
$label = '<label'
. $this->_htmlAttribs($label_attribs) . ' for="' . $optId . '">'
. $opt_label
. '</label>';
// Create the radio button
$radio = '<input type="' . $this->_inputType . '"'
. ' name="' . $name . '"'
. ' id="' . $optId . '"'
. ' value="' . $this->view->escape($opt_value) . '"'
. $checked
. $disabled
. $this->_htmlAttribs($attribs)
. $endTag;
// Combine the label and the radio button
if ('prepend' == $labelPlacement) {
$radio = $label . $radio;
} else {
$radio = $radio . $label;
}
// add to the array of radio buttons
$list[] = $radio;