Я хотел бы добавить в мою форму простой флажок:
$element = new Zend_Form_Element_Checkbox('dont');
$element->setDescription('Check this box if you don\'t want to do this action.');
$form->addElement($element);
Однако это выглядит как HTML:
<dt id="dont-label"> </dt>
<dd id="dont-element">
<input type="hidden" name="dontAttach" value="0">
<input type="checkbox" name="dontAttach" id="dontAttach" value="1">
<p class="description">Don't attach a bulletin. I only want to send an email.</p>
</dd>
Проблема заключается в том, что я использую jQuery, чтобы скрыть все DT/DD, которые имеют метку
внутри DT и скрытый элемент внутри DD (поэтому мой html будет проверять, а скрытые элементы - не занимайте места на странице). Есть ли способ использовать Zend_Form_Element_Checkbox
без отображения скрытого элемента ввода? Я бы предпочел не связываться с моим кодом jQuery, чтобы добавить дополнительные предостережения, но я буду, если мне нужно.
Решение:
По-видимому, я не могу/не должен удалять скрытый элемент перед элементом флажка. Итак, вот мой код jQuery, чтобы скрыть все скрытые элементы формы от отображения на странице:
//fix zf hidden element from displaying
$('input[type=hidden]').filter(function() {
var noLabel = $(this).closest('dd').prev('dt').html() === ' ';
var onlyChild = $(this).is(':only-child');
if (noLabel && onlyChild) {
return true;
}
return false;
}).each(function() {
$(this).closest('dd').hide()
.prev('dt').hide();
});