2009-03-26 5 views
2

나중에 jquery로 숨길 수 있도록 양식의 레이블 중 하나에 ID를 설정하려고합니다. 여기 내 요소의 : 소스에서Zend_Form의 레이블 ID 설정

$password = new Zend_Form_Element_Password('password'); 
$password->setLabel('Password:') 
    ->setRequired(true) 
    ->addFilter('StripTags') 
    ->addFilter('StringTrim') 
    ->addValidator('NotEmpty') 
    ->setAttrib("id", "password"); 

, 그것은 다음과 같습니다

<label id="pass_label" for="password" class="required">Password:</label> 

어떤 아이디어 :

<dt> 
<label for="password" class="required">Password:</label> 
</dt> 

<dd> 
<input type="password" name="password" id="password" value=""> 
</dd> 

나는처럼 보이도록 라벨을해야합니까?

답변

1

장식을 사용하여 레이블의 ID를 변경하는 것이 가능하지 않는 것,하지만 당신은 쉽게 나는의 ID를 설정하는 노력이

<label class="pass_label optional" for="password">Password</label> 

결과 클래스 명

$decorators = array(
     array('ViewHelper'), 
     array('Errors'), 
     array('Description', array('tag' => 'p', 'class' => 'description')), 
     array('HtmlTag', array('tag' => 'dd')), 
     array('Label', array('tag' => 'dt', 'class' => 'pass_label')), 
    ); 

    $password->setDecorators($decorators); 

를 추가 할 수 있습니다 같은 방식으로 작동하지 않습니다. id 배열을 옵션 배열로 전달하면 'for'속성의 값이 변경됩니다.

1

저는 파티에 늦었지만 jQuery를 사용하여 숨길 수 있다면 다음과 같이 for 속성을 기반으로 선택하십시오.

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

트릭을 수행해야합니다. jQuery의 버전에 따라 다음과 같이 속성 앞에 @가 필요할 수도 있고 없을 수도 있습니다.

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