2012-10-22 2 views
2

Drupal FAPI를 사용하여 양식을 구성 중이며 조금 복잡합니다. 내가하고 싶은 일은 버튼을 놓고 사용자가 클릭 할 때 정보를 추가하는 것입니다. 그래서 그 버튼으로 검증을 건너 뛰어야합니다. #limit_validation_errors 속성을 사용하려고하는데 작동하지 않는 것처럼 보이고 모든 유효성 검사를 실행 중입니다.Drupal #limit_validation_errors가 작동하지 않습니다.

폼 트리의 루트 수준에 요소를 추가하면 작동한다는 것을 알았습니다.

$form['application']['education']['add_education'] = array(
    '#type' => 'submit', 
    '#value' => 'Add', 
    '#submit' => array('_education_submit'), 
    '#limit_validation_errors' => array(), 
); 

위의 코드는 작동하지 않습니다, 아래 코드는하지만 작동합니다 : 이것은 내가 가진 무엇

드루팔 비교할 값 속성을 사용하여 triggering_element을 찾고있는 것 같습니다
$form['add_education'] = array(
    '#type' => 'submit', 
    '#value' => 'Add', 
    '#submit' => array('_education_submit'), 
    '#limit_validation_errors' => array(), 
); 

답변

2

; 같은 값을 가진 다른 버튼이 있기 때문에 시스템은 값을 엉망으로 만들고 다른 버튼을 클릭 한 것으로 간주합니다.

코드를 수정하려면 버튼의 #value 속성 만 변경해야했습니다. 이 경우 Drupal이 오른쪽 버튼을 클릭했기 때문에 트리에서 위치를 바꿀 때 작동했습니다.

$form['add_education'] = array(
    '#type' => 'submit', 
    '#value' => 'Add', 
    '#submit' => array('submit_function'), 
    '#limit_validation_errors' => array(array('_education_submit')), 
); 
: 여기
관련 문제