フォームで Zend のラジオ ボタンとチェックボックスを使用していますが、ユーザーが他の値をクリックすると、それらの一部を非表示にする必要があります。これに関して、ラジオボタン/チェックボックスを単独で非表示にできるクリックハンドラーを作成しましたが、対応するラベルは非表示にできません。ラジオ ボタンは次のように初期化されます。
$gender = new Zend_Form_Element_Radio('gender', array('escape' => false) );
$gender->setLabel('Gender')
->addMultiOptions(array(
'f' => 'female',
'm' => 'male'))
->setDecorators(array(
'ViewHelper',
'Errors',
array('HtmlTag', array('tag' => 'dd') ),
array('Label', array('tag' => 'dt', 'escape' => false, 'class' => 'question') )
))
->setRequired(true);
$gender_required_checkbox = new Zend_Form_Element_Checkbox('gender_required_checkbox');
$gender_required_checkbox->setAttrib('required', 'required');
$gender->setAttribs(array('onClick'=>'required_check_clckHndlr(this)'));
Javascript クリック ハンドラーは次のようになります。
$("#gender").hide('slow');
$("#gender-label").hide('slow');
$("#gender_required_checkbox").hide('slow');
$("#gender_required_checkbox-label").hide('slow');
これはラジオ ボタンとチェックボックスに対しては正常に機能しますが、ラベルは引き続き表示されます。