0

フォームで 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');

これはラジオ ボタンとチェックボックスに対しては正常に機能しますが、ラベルは引き続き表示されます。

4

1 に答える 1

0

数日前に使用しようとしたときに同様の問題に遭遇しました

$('label[for="checkbox"]').hide();

成功せずに。.parent()そのため、 jquery メソッドを使用して DOM を反復し、.hide()代わりにブロック全体を反復することになりました。

$('#your_id').parent().parent().hide();
于 2013-10-16T07:38:51.087 に答える