그런 일은 가능하지만 클라이언트 측은 자바 스크립트를 사용해야합니다. Personnaly, 나는 그런 종류의 물건에 대해 jQuery를 사용하기를 좋아한다. 어떻게 할 수있는 지에 대한 예가 있습니다.
class My_Form extends Zend_Form {
$field = $this->createElement('select', 'myselect');
$field->setLabel('Choose to display the form or not');
$field->setMultiOptions(array('1'='Display', '2'=>'Do not display'));
$this->addElement($field);
$field = $this->createElement('text', 'optionaltext');
$field->setLabel('This is an optional field');
$this->addElement($fiel);
}
자, 레이아웃, 당신은 jQuery 라이브러리 포함해야한다 :
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript">
그리고를 마지막으로, 당신은 다른의 .js 파일을 포함해야합니다 (또는 단순히 페이지에 < 스크립트에서 > 태그 코드를 포함).
$(document).ready(function() {
$(function() {
//Function triggered when changing the value in the drop down
$('#myselect').change(function(event) {
if($('#myselect').val() == 1) {
//Show elements
$('#optionaltext').show();
//The following line shows/hides all the dd/dt wrappers as well
$('[id*=optionaltext]).show();
} else {
//Hide elements
$('#optionaltext').hide();
//The following line shows/hides all the dd/dt wrappers as well
$('[id*=optionaltext]).hide();
}
});
});
});
지금은 코드를 테스트하지 않았습니다 염두에 두시기 바랍니다 난 그냥 내가 실제로 그렇게 하루의 첫 커피를 완료 내 머리 꼭대기에 전에 ... 그것은 몇 가지 버그가있을 수 있습니다 썼다 . 이것은 말하기를, 당신이하고 싶은 일에 좋은 출발이되어야합니다. 누락 된 것이 있거나 찾을 수없는 버그가있는 경우 여기에 질문하십시오. 희망이 도움이!
당신은 분명히 자바 스크립트를 사용해야합니다 ... –
감사합니다, 당신은 어떻게 하위 양식을 렌더링합니까? –
양식에 추가하기 만하면됩니다. 'setAttrib'메서드를 사용하면 하위 특성에 스타일 특성을 추가하고 디스플레이를 '없음'으로 설정할 수 있습니다. 그런 다음 다른 양식 속성에 onclick 핸들러를 추가하여 하위 양식을 표시하십시오. –