フォームに簡単なチェック ボックスを追加したいと思います。
$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
非表示の入力要素を表示せずにa を使用する方法はありますか? 警告を追加するために 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();
});